본문 바로가기

프로그래밍 학습/보안 이론

[정보보안기사 필기] 운영체제 프로세스 정리

728x90

운영체제의 주요 구성기술(프로세스 관리만)

1. 프로세스 관리 2. 기억장치 관리 3. 파일시스템 관리 4. 분산시스템 관리

 

1).프로세스 관리

개념 : 시스템 작업의 기본 단위이며 현재 수행상태에 있는 프로그램을 의미한다. 예를 들면 수행중인 응용프로그램, 운영체제의 일부인 CPU 스케줄러등이 프로세스가 될 수 있다. 하나의 프로세스는 생성되어 완료될 떄까지 상태변화를 거치게 된다.


- 생성 : 프로세스가 생성되었지만 운영체제에 의해서 실행가능한 프로세스 집합에 들어가지 못한 상태

- 실행 : 현재 CPU를 차지하여 실행중인 상태

- 준비 : 프로세스가 실행되고 있지 않지만 즉시 CPU를 사용할 수 있는 상태

- 대기 : 어떤 사건이 발생하기 전까지는 실행될 수 없는 상태

- 보류 : 프로세스가 디스크 등에 보관되어 있는 상태

- 교착 : 프로세서가 결코 일어날 수 없는 사건을 기다리는 상태

- 종료 : 운영체제에 의해서 실행가능한 프로세스 집합으로부터 해제된 상태


프로세스 제어블록 : 프로세스는 프로세스 제어블록(PCB)으로 나타내며 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 저장소를 의미한다. 운영체제가 제어를 다른 프로세스에 넘겨줄 때 현재 실행중인 프로세스의 정보를 해당 PCB에 저장한 후 제어를 넘겨주게 된다. 제어가 다시 프로세스에게 넘겨질 경우 운영체제는 PCB에 있는 정보를 이용해서 실행을 한다.


2.병행처리와 프로세스

1) 프로세스 생성하는데 필요한 작업

- 프로세스 이름을 결정

- 프로세스 리스트에 생성된 프로세스를 추가

- 생성된 프로세스에 초기 우선순위를 부여

- 생성된 프로세스에 PCB를 생성

- 생성된 프로세스에 초기자원 할당


2) 쓰레드

- 프로세스가 논리적으로 운영체제가 해야 하는 작업을 의미한다면 스레드는 그 작업을 성취하는데 필요한 가능한 많은 하위 작업 중의 하나이고 하나의 프로세스는 하나의 쓰레드나 여러개의 쓰레드로 구성될 수 있다. 따라서 프로세스보다는 작은 단위이며 자원의 할당에는 관계하지 않고 프로세서 스케줄링의 단위로서 사용하게 된다.


3)태스트( 프로세스와 같은개념)

- 태스크는 자원 할당의 단위로 정의될 수 있으며 프로세스와 같은 개념으로 이해할 수 있다. 즉, 쓰레드는 프로세스처럼 독립된 주소공간을 가질 수 없고 프로세스처럼 독립적으로 자원 할당을 요청할 수 없다 


3. 프로세스 스케줄링

개념 : 멀티 프로세스 시스템 내에 존재하는 여러개의 프로세스 중 어떤 프로세스에게 CPU 사용권을 넘겨줄 것인가를 결정하는 일이다.  멀티 프로세스는 시스템에서는 생성된 프로세스는 일단 준비상태로 넘어가게 되고 준비 상태에서는 여러 개의 프로세스가 실행되기를 기다리고 있는 상태를 운영체제가 이들을 큐에 보관하고 관리(대기 큐)하면서 CPU가 사용 가능하면 운영체제는 대기 큐에서 기다리고 있던 프로세스에게 CPU 사용권을 넘겨준다.


종류

스케줄링 큐

- 준비큐 

주기억 장치에 적재되어 있으면서 CPU에 의해 실행되기를 준비하는 프로세스들로 구성된 리스트

첫 번째와 마지막 PCB(프로세스 제어블록)를 가리키는 큐 헤더와 각 프로세스의 정보와 다음 프로세스의 PCB를 가리키는 포인터 필드를 포함한 PCB로 구성


- 작업큐

주기억장치의 할당을 기다리며 대용량의 기억장치에 있는 프로세스들로 구성된 리스트


- 장치큐

특정한 입출력 장치를 기다리고 있는 프로세스로 구성된 리스트


4. 스케줄러

장기스케줄러(작업스케줄러) : 저장소(큐)에서 프로세스들을 선택하여 실해하기 위해 기억장치로 적재

단기스케줄러(CPU스케줄러) : 실행준비가 되어 있는 프로세스 중에서 선택하여 이들 중 하나에게 CPU를 할당

중기 스케줄러 : 기억장치에서 프로세스들을 제거하여 다중프로그래밍의 정도를 완하하는 것이 바람직할 때가 있다는 것에서 유래한 것으로 프로세스는 중기 스케줄러에 의하여 교체된다. 차후에 다시 프로세스를 메모리로 불러와서 중단되었던 지점으로부터 실행을 재개하는 기법을 스와핑이라 한다.


스케줄링 성능기준

- CPU 이용률 : 프로세스들이 CPU를 사용하는 비율로 실제로는 CPU가 쉬는시간을 측정하여 그 시간을 제외한 나머지 시간을 사용

- 시스템 처리율 : 단위시간당 완료된 프로세스의 개수 

- 반환시간 : 프로세스들이 시스템에 들어간 시간과 마친 시간의 차이를 말하며 출력장치의 속도에 제한을 받는다.

- 대기시간 : 프로세스가 준비 큐에서 대기하는 시간으로 큐의 길이에 의해 측정될 수 있다.

- 응답시간 : 프로세스의 요구한 시간으로부터 첫 번째 응답이 나올 때까지의 시간


스케줄링 방법 분류

-선점 스케줄링 : 현재 프로세스로부터 프로세서를 빼앗을 수 있는 방식으로 높은 우선순위의 프로세스로부터 긴급처리 요구에 유용하며 특히 실시간 프로세스, 대화식 시분할 시스템에서 빠른응답이 가능

종류 : RR(Round Robin), SRT(Shorest Remain Time), MFQ(Multi level Feedback Queue), MLQ(Multi level Queue)


-비선점 스케줄링 : 프로세스에게 할당된 프로세서를 빼앗을 수 없는 방식, 사용이 끝날때까지 기다림

종류 : FIFO(First In First Out), SJF(Shortest Job First), HRN (Highest Response Ration Next), 우선순위, 기한부


5. 프로세스간 협조

- 생산자와 소비자 문제 : 두 개의 프로세스는 하나의 고정된 크기의 버퍼를 공유하는 상태에서 하나의 프로세스는 그 버퍼에 정보를 써넣는 생산자이고 또 다른 프로세스는 버퍼에 있는 정보를 꺼내어 사용하는 소비자 프로세스이다. 이들이 같은속도로 진행된다면 문제는 없지만 속도가 다를 경우 즉 버퍼가 비어 있는 상태에서 소비자 프로세스가 버퍼에서 데이터를 읽어가려하거나 생산자가 정보를 넣을때 버퍼가 가득차있어 오버플로우 되는 현상이 나타날 수 있다. 


6, 임계영역 문제

두개 이상의 프로세스가 동시에 액세스 하면 안되는 공유 자원을 액세스하는 코드영역

해결하기위한 3가지 조건

1. 상호배제

2. 진행(Progress) : 임계구역에 들어가려고하는 프로세스들만이 순서결정에 참여

3. 한계대기(bounded wating) : 무한정 대기해서는 안됨


7. 프로세스간 통신

- 공유 메모리 방식 : 어떤 변수들을 공유함으로써 프로세스들간의 통신이 이루어지는 기법으로 프로세스들은 공유변수를 통해 정보를 교환하며 운영체제는 공유메모리만 제공한다. 프로그래머는 공유메모리를 통해 통신기능을 구현할 수 있다.

- 메시지 시스템 방식 : 프로세스들이 메시지를 교환하도록 허용하는 기법이다.


8. 교착상태(Deadlock)

현상 : 다중 프로그래밍 시스템에서 아무리 기다려도 결코 일어나지 않을 사건을 기다리고 있는 프로세스를 교착상태에 빠졌다고 한다. 교착상태란 다중 프로그래밍 시스템 하에서 서로 다른 프로세서가 일어날 수 없는 사건을 무한정 기다리는 상태를 의미하고 이러한 상태를 환형대기(Circular wait)라고도 한다.


발생조건 : 상호배제, 점유와대기, 비중단조건, 환형대기조건


해결방안 : 예방, 회피, 탐지, 복구