프로세스 간 통신의 개념프로세스 내부 데이터 통신하나의 프로세스 내에 2개 이상의 스레드가 존재하여, 전역 변수나 파일을 이용해 데이터를 주고 받는다. 프로세스 간 데이터 통신같은 컴퓨터에 있는 여러 프로세스끼리 통신하는 경우로, 공용 파일 또는 운영체제가 제공하는 파이프를 사용하여 통신한다.네트워크를 이용한 데이터 통신 : 여러 컴퓨터가 네트워크로 연결되어 있을 때의 통신 방식으로, 소켓을 이용해 통신한다. 이를 네트워킹이라고 한다. 원격 프로시져 콜도 이에 해당한다. 프로세스 간 통신의 분류 통신 방향에 따른 분류양방향 통신데이터를 동시에 양쪽 방향으로 전송할 수 있는 구조. 소켓 통신이 이에 해당한다.반양방향 통신양쪽 방향 모두에 전송할 수 있지만, 동시 전송은 불가능한 경우. 무전기가 이에 해당한..
분류 전체보기
스케줄링의 단계 고수준 스케줄링가장 큰 틀에서 이루어지는 스케줄링시스템 내의 전체 작업(1개 또는 여러 개의 프로세스) 수를 조절하는 것어떤 작업을 시스템이 받아들일지 또는 거부할지 결정작업이 시작되면 시스템 자원을 사용하기에 기존 작업에 영향을 미치기 떄문이다. 저수준 스케줄링어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기 상태로 보낼지 등을 결정준비상태 프로세스 -> 실행상태, 실행상태 프로세스 -> 대기상태, 등 프로세스 상태에 관한 내용 중간 수준 스케줄링고수준 스케줄링과 저수준 스케줄링 사이에 일어난 스케줄링중지와 활성화를 하여 전체 시스템의 활성화된 프로세스 수를 조절하여 과부화를 막는다.일부 프로세스를 중지(보류)상태로 옮김으로써 나머지 프로세스가 원만하게 작동하도록 지원한다. 스케..
스레드프로세스의 코드에 정의된 절차에 따라 CPU에 작업 요청을 하는 실행 단위이다.프로세스가 생성되면 CPU 스케줄러는 프로세스가 해야 할 일을 CPU에 전달하고 실제 작업은 CPU가 수행하는데 CPU스케줄러가 CPU에 전달하는 일 하나가 스레드 이다.작업을 상대적인 크기 순으로 나열하면 job(직업)>task(일)>operation(동작)이 되는데 이를 프로세스와 스레드의 관계에 대입하면 처리 > 프로세스 > 스레드 가 된다.여러 개의 스레드가 모여 프로세스를 이루고 여러개의 프로세스가 모여 처리가 되며 여러개의 프로세스를 모아서 한꺼번에 처리하는 방법을 일괄 작업 이라고 한다. 프로세스와 스레드의 차이프로세스 끼리는 약하게 연결되어 있는 반면 스레드끼리는 강하게 연결되어 있다. 스레드 관련 용어 ..
프로세스의 개념프로그램저장장치에 저장되어 있는 정적인 상태프로세스실행을 위해 메모리에 올라온 동적인 상태 프로그램에서 프로세스로의 전환태스크프로세스에서의 컴퓨터 시스템의 작업 단위 운영체제는 프로그램을 메모리의 적당한 위치로 가져온다. 동시에 프로세스 제어 블록(PCB)을 만든다. PCB 프로세스 구분자(PID)와 메모리 관련 정보, 각종 중간값 등이 저장 해당 프로세스를 관리하는 데이터 구조이기 때문에 운영체제 영역에 만들어진다 프로세스 = 프로그램 + 프로세스 제어 블록프로그램 = 프로세스 - 프로세스 제어 블록 프로세스의 상태생성 상태실행 준비를 완료한 상태프로그램이 메모리에 올라오고 운영체제로 부터 프로세스 제어 블록이 생성준비 상태생성된 프로세스가 CPU를 얻을 때까지 기다리는 상태 프로..
하드웨어의 구성중앙처리장치(CPU), 메인메모리, 입력장치, 출력장치, 저장장치로 구성된다.제1저장장치: 메인메모리 / 제2저장장치: USB...CPU: 명령어를 해석하여 실행하는 장치입/출력장치: 외부의 데이터를 컴퓨터에 입력하는 장치 / 컴퓨터에서 처리한 결과를 사용자가 원하는 형태로 출력하는 장치저장장치: 자성을 이용하는 장치, 레이저를 이용하는 장치 등...메인보드: CPU와 메모리 등 다양한 부품을 연결하는 커다란 판 폰노이만 구조CPU, 메모리, 입출력장치, 저장장치가 버스로 연결되어 있는 구조하드웨어는 그대로 둔 채 작업을 위한 프로그램만 교체하여 메모리에 올리는 방식모든 프로그램은 메모리에 올라와야 실행할 수 있다는 것이 특징 하드웨어 사양 관련 용어클록(clock) CPU의 속도..
운영체제운영체제 OS(operating System): 부팅시 가장 먼저 만나게 되는 소프트웨어 / 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 스템의 자원을 효율적으로 관리하는 소프트웨어이다.윈도우, MacOS, 유닉스, 리눅스, 안드로이드..임베디드 운영체제: CPU의 성능이 낮고 메모리 크기도 작은 시스템에 내장하도록 만든 운영체제 운영체제의 역할자원 관리: 자원을 응용 프로그램에 나누어주어 사용자가 원활하게 작업할 수 있도록 돕는다.자원 보호: 비정상적인 작업으로부터 보호한다.하드웨어 인터페이스 제공: 제품을 사용할 때 별도의 소프트웨어를 설치해야 하는 과정을 복잡하지 않게 해주는 역할을 한다.사용자 인터페이스 제공: 사용자가 운영체제를 편리하게 사용하도록 지원한다. 운영체제의 목표효..
우선순위 큐우선순위 큐에서는 데이터들이 우선 순위를 가지고 있고 우선 순위가 높은 데이터가 먼저 나가게 된다. 우선순위 큐 ADT객체: n개의 element형의 우선 순위를 가진 요소들의 모임연산: create() ::= 우선순위 큐를 생성한다. init(q) := 우선순위 큐 q를 초기화 한다. is_empty(q) ::= 우선순위 큐 q가 비어있는지를 검사한다. is_full(q) ::= 우선순위 큐 q가 가득 찼는가를 검사한다. insert(q, x) ::= 우선순위 큐 q에 요소 x를 추가한다. delete(q) ::= 우선순위 큐로부터 가장 우선순위가 높은 요소를 삭제하고 이 요소를 반환한다. find(q) ::= 우선순위가 가장 높은 요소를 반환한다. 우선순위..
해싱해싱은 키에 산술적인 연산을 적용하여 항목이 저장되어 있는 테이블의 주소를 계산하여 항목에 접근한다.해시테이블: 키에 대한 연산에 의해 직접 접근이 가능한 구조해싱: 해시테이블을 이용한 탐색 이상적인 해싱 알고리즘add(key, value): index 실제로는 해시 테이블의 크기가 제한되어 있으므로 하나의 키당 해시테이블에서 하나의 공간을 할당할 수가 없다.mod를 사용하자h(k) = k mod M 충돌과 오버플로우충돌: 서로 다른 키를 갖는 항목들이 같은 해시주소를 가지는 현상오버플로우 발생: 충돌이 발생하고, 해시 주소에 더 이상 빈 버킷이 남아 있지 않으면 발생해결법:개방 주소법 : 충돌이 일어난 항목을 해시 테이블의 다른 위치에 저장체이닝: 해시 테이블의 하나의 위치가 여러 개의 항목을 ..
순차탐색int seq_search(int key, int low, int high){ int i; list[high + 1] = key; for (i = low; list[i] != key; i++) //키 값을 찾으면 종료 ; if (i == (high + 1)) return -1; // 탐색 실패 else return i; // 탐색 성공} 이진탐색정렬된 배열의 탐색에 적합함배열의 중앙에 있는 값을 조사하여, 찾고자 하는 항목이 왼쪽 또는 오른쪽 부분 배열에 있는지를 알아내어 탐색의 범위를 반으로 줄인다.search_binary(list, low, high): middle list[middle]) return list[middle + 1]부터..
정렬대상을 크기순으로 오름차순이나 내림차순으로 나열하는 선택 정렬 알고리즘selection_sort(A, n):for i 삽입 정렬 알고리즘insertion_sort(A, n):for i = 0 and A[j] > key do A[j + 1] 버블 정렬 알고리즘BubbleSort(A, n):for i 합병 정렬 알고리즘merge_sort(list, left, right):if left merge(list, left, mid, last):i 기수 정렬 알고리즘RadixSort(list, n):for d
그래프그래프는 객체 사이의 연결 관계를 표현할 수 있는 자료 구조다.대표적인 예는 지하철 노선도가 있다. 개인적으로 대단하다고 생각하고 있다. 그래프의 정의와 용어정점(vertex): 위치라는 개념. (node라고도 부름)간선(edge): 위치 간의 관계. 즉, 노드를 연결하는 선 (link, branch라고도 부름)인접 정점(adjacent vertex): 간선에 의 해 직접 연결된 정점정점의 차수(degree): 무방향 그래프에서 하나의 정점에 인접한 정점의 수무방향 그래프에 존재하는 정점의 모든 차수의 합 = 그래프의 간선 수의 2배진입 차수(in-degree): 방향 그래프에서 외부에서 오는 간선의 수 (내차수 라고도 부름)진출 차수(out-degree): 방향 그래픙에서 외부로 향하는 간선의..
트리트리는 계층적인 자료를 표현하는데 적합한 자료구조이다. 트리의 용어노드(node) : 트리를 구성하는 기본 원소노드 (root node/root): 트리에서 부모가 없는 최상위 노드, 트리의 시작점부모 노드(parent node): 루트 노드 방향으로 직접 연결된 노드자식 노드(child node): 루트 노드 반대방향으로 직접 연결된 노드형제 노드(siblings node): 같은 부모 노드를 갖는 노드들리프 노드(leaf node/leaf): 루트 노드를 제외한 차수가 1인 정점을 뜻한다. 쉽게 말해 자식이 없는 노드. 단말 노드라 부르기도 한다.경로(path): 한 노드에서 다른 한 노드에 이르는 길 사이에 있는 노드들의 순서길이(length): 출발 노드에서 도착 노드까지 거치는 간선의 개수..