CS/OS 23

[운영체제] 프로세스 상태

한정된 자원( 처리기 및 메모리 )을 여러 프로세스가 공유하려면 OS는 한 가지 프로세스가 처리기 및 메모리를 독점하지 않고 인터리빙(Interleaving) 할 수 있도록 지원해야한다. OS의 주요 업무는 2가지이다. 1. 프로세스 수행을 인터리빙하는 패턴 결정 2. 프로세스 자원 할당 2가지 주요 업무는 프로세스 상태와 관련있다. 프로세스 상태 프로세스 상태는 기본적으로 두 가지로 나뉠 수 있다. 수행중이냐 비수행중이냐. 지난 포스팅에서 다루었던 바와 같이, OS는 PCB 자료구조로 프로세스를 관리한다. 준비큐에 PCB가 대기하면 비수행이고 처리기를 할당받으면 수행중이다. OS는 프로세스를 Switch하는 디스패처(Dispachter) 프로그램을 이용하여 처리기를 다른 프로세스에 할당한다.(디스패치)..

CS/OS 2021.10.11

[운영체제] PCB의 구성요소

처리기는 하드웨어 자원으로 한정되어 있다. 그러므로 여러 프로세스가 처리기를 사용하려면 이용순서를 정해야하는데, 이를 스케줄링(Scheduling)이라 부른다. OS가 스케줄링을 담당한다. OS는 PCB를 통해 프로세스를 식별한다. 그러므로 PCB에는 처리기 사용을 위한 모든 정보가 들어있어야 한다. 위 그림은 처리기 문맥교환(Context Change)이 일어나는 간략한 다이어그램이다. OS는 스케줄링을 위해 Queue 자료구조를 이용한다. Queue 자료구조에는 PCB의 주소가 들어간다. PCB 객체가 큐에 들어가면 Queue 자료구조가 방대해지기 때문에 비효율적이다. Queue 자료구조에 저장된 PCB 주소가 디스패치되면 본격적인 처리기 문맥교환이 일어난다. 그럼 PCB에는 어떤 정보들이 저장되어야..

CS/OS 2021.10.11

[ 운영체제 ] PCB ( Process Control Block )

프로세스(Process)란? 하드웨어는 한정되지만 소프트웨어는 무한하다. 운영체제는 하드웨어 자원이 효율적으로 사용되도록 소프트웨어를 번갈아 가면서 실행시켜야 한다. 하드웨어 중 가장 핵심이 되는 부품은 CPU이다. 이를 '처리기'라 부르겠다. 처리기는 프로그램을 '프로세스(Process)' 단위로 처리한다. 그러므로 프로그램은 '프로세스'로 구현되기에 프로세스를 프로그램의 '인스턴스'라고도 부른다. 운영체제는 처리기의 이용률을 극대화 할 수 있도록 여러 프로세스 수행을 인터리빙(interleaving)한다. 위 그림은 메모리 인터리빙의 모습이다. bank1, bank2, bank3, bank4 는 서로 다르지만 메모리 주소를 번갈아가면서 부여받는다. 그래야 처리기가 여러 개의 프로세스를 순차적으로 접근..

CS/OS 2021.09.29