공부기록
프로세스의 개념 본문
- 프로세스란?
- 수행중인 프로그램
- 프로그램 : Disk
- 프로세스 : Memory
- 컴퓨터상의 수행 중인 프로그램의 인스턴스
- 처리기에 할당되어 수행될 수 있는 개체(entity)
- 명령들의 순차 수행, 현재 상태, 연계된 시스템 자원들의 집합 등에 의해 특징되어지는 활성화 단위 (a unit of activity)
- 수행중인 프로그램
- 프로세스의 구조 (필수 요소)
- 프로그램 코드 (동일 프로그램을 수행하는 서로 다른 프로세스들이 공유할 수 있는 부분)
- 코드와 연계된 데이터 집합 & Stack
- PCB
- 프로그램이 수행 중 특정 시점에 유일하게 식별하게 해주는 여러가지 요소의 집합
- PCB의 구성요소
- 식별자, 상태, 우선순위, PC, 메모리 포인터, context data, 입출력 상태정보, 어카운팅 정보
- PCB의 주요 역할
- 수행 프로세스가 인터럽트 당한 후 나중에 그 인터럽트가 발생되지 않은 것 처럼 프로세스 수행을 재개 할 수 있도록 충분한 정보 (context)를 유지하는 것
- 프로세스가 context switching 당한 뒤 다시 수행을 재개 할 때 원래 context를 유지할 수 있도록 정보를 제공
- context switching
- 어떤 프로세스가 인터럽트 될 때
- 프로그램 카운터 및 처리기 레지스터들 (문맥 데이터)의 현재 값이 해당 프로세스 제어블록의 적절한 필드에 저장 (Save the Old Context at PCB)
- 프로세스 상태를 블록 또는 준비와 같은 값으로 변경
- OS 는 다른 프로세스를 선택하여 수행상태로 만들고
- 그 프로세스의 PCB에서 PC와 문맥데이터를 처리기 레지스터로 적재
- 새로운 프로세스 실행 (Execution of the New Context)