티스토리 뷰

SoftWare/OS

OS - 3. Process(1)

White Whale 2016. 4. 8. 17:01
728x90

1. The Process

• 프로세스란 실행 중인 프로그램이고 프로그램은 메모리에 저장되어 있는 파일이다.
• 함수, 로컬 변수와 같은 것들은 프로세스 스텍에 저장된다.
• 동적으로 할당된 것들은 힙 영역에 저장되며 상수는 텍스트 영역에 저장된다.


2. Process State

• new : 프로세스가 생성 중인 상태이다.
• ready : 프로세스가 처리기에 할당되기를 기다린다.
• running : 명령어가 실행되고 있다.
• waiting : 프로세스가 어떤 사건이 발생되기를 기다린다.
• terminated : 프로세스의 실행이 종료되었다.


3. Process Control Block(PCB)

각 프로세스는 운영체제에서 프로세스 제어 블록에 의해 표현된다. 제어 블록이 가지는 것들은 다음과 같다.

• 프로세스 상태
• 프로그램 카운터
• CPU 레지스터들 : 누산기, 인덱스 레지스터, 스택 레지스터, 범용레지터 등
• CPU-스케줄링 정보 : 프로세스 우선순위, 스케줄 큐에 대한 정보
• 메모리 관련 정보 : CPU가 할당 해준 메모리 시작 주소(Base reg), 총 룡량(Limit reg), 페이지 테이블, 세그먼트 테이블 등의 데이터가 저장된다.
• 회계(accounting) 정보 : CPU사용 시간, 경과 시간, 시간 제한 프로세스 번호 등이 저장된다.
• 입출력 상태 정보 : 프로세스에게 할당된 입출력 장치와 열린 파일 목록 등이 저장된다.


4. Thread - 생략 

5. Process Scheduling

다중 프로그래밍 목적은 CPU 이용을 최대화 하는 것이고 시분활의 목적은 각 프로그램이 실행되는 동안 사용자가 상호작요 할수 있도록 프로세스들 사이의 CPU를 알맞게 교체하는 것이다. 이를 위해 프로세스 스케줄러가 존재한다.


6. Scheduling Queues

• Job queue : 프로세스가 시스템에 들어오면 잡큐에 모여진다.
• Ready queue : 주 메모리에 존재하며, 준비 완료 상태에서 실행을 대기하는 프로세스들이 모여있다. 이큐들은 대부분 연결 리스트로 구현되어있고 큐 헤더는 첫번째와 마지막 PCB를 가리킨다.
• Device queue : 프로세스가 I/O장치를 사용할 때 들어가는 큐이다.


7. Schedulers

• 장기 스케줄러 : 메모리와 디스크 사이의 스케줄링을 담당, 프로세스 상태로 말하면 New->Ready와 Running(or Ready) ->Terminated 일때를 관리한다. 프로세스를 가져올 때 I/O 중심 프로세스 수와 CPU 중심 프로세스의 수를 잘 고려해서 가져와야하고 메모리 내 프로세스들의 수를 제어하기 떄문에 호출 빈도가 적다.
• 단기 스케줄러 : CPU와 메모리 사이에어 어느 프로세스가 CPU자원을 할당 받을지 정해준다. 스테이트로 보면 Ready, Running, waiting 주기를 관리한다고 보면 된다. 이러한 이유 때문에 장기 스케줄러와 달리 실행 빈도수가 높고 매우 빠르다.
• 중기 스케줄러 : CPU 점유에 대한 경쟁이 심할 때 즉 레디 큐레 프로세스가 너무 많을 때 우선 순위가 낮은 프로세스를 다음 작업 위치(PC)를 저장 시키고 잠시 메모리에서 제거한다. 이후 경쟁이 줄어들면 다시 디스크에서 메모리로 불러와 중단되었던 부분부터 다시 실행 시킨다. 이기법을 스와핑이라고 부른다.


7. 문맥 교환(Context Switch)

• 문맥 교환(Context Switch)이란 하나의 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해, 이전의 프로세스의 상태(문맥)를 보관하고 새로운 프로세스의 상태를 적재하는 작업을 말한다.
• 한 프로세스의 문맥은 그 프로세스의 프로세스 제어 블록에 기록되어 있다.
• 문맥교한은 순수 오버헤드이며 하드웨어에 따라 좌우된다.
• 인터럽트는 운여체제가 CPU를 현재 진행중인 프로세스에게서 빼앗아 커널 루틴을 실행할 수 있게 한다. 프로세스는 하나의 루틴을 수행하고 인터럽트 여부를 확인하는데 만약 인터럽트가 발행되었다면 다음 수행될 루틴의 주소가 있는 PC와 같은 정보를 저장하는데 저장하는 위치가 PCB이다. 이후 인터럽트의 처리가 끝나면 저장했던 프로세스를 다시 CPU로 불러오는 작업을 한다.

'SoftWare > OS' 카테고리의 다른 글

OS - 4. Thread  (0) 2016.04.10
OS - 3. Process(2)  (0) 2016.04.10
OS - 2. Operating System Structures(2)  (0) 2016.04.03
OS - 2. Operating System Structures(1)  (0) 2016.03.28
OS - 1. Introduction(4)  (0) 2016.03.27
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함