Process : 프로세스
- 실행중에 있는 프로그램
- 프로세서에 할당되어 실행 될 수 있는 entity
- 프로세스 제어 블록(PCB : Process Control Block)을 할당 받는 개체
- 컴퓨터에서 실행되는 프로그램의 인스턴스
Reasons for Process Creation : 프로세스의 생성 이유
- OS에 의해 생성
- Interactive login - 터미널에서 사용자가 시스템에 로그인
- 존재하는 프로세스에 의해 생성 - 사용자 프로그램은 OS에게 자식 프로세스를 생성하라고 요청 할 수 있다.
- user command에 의해 생성
☞ foreground (interactive) mode에서 프로그램 실행
☞ background (batch) mode에서 프로그램 실행
Process States : 프로세스 상태
- Dispatcher(kernel function)은 PC(Program Counter)에 있는 주소값을 가져와서 한 프로세스로부터 다른 프로세스로 switch 해준다. ( 다른 프로세스로 자원을 할당해준다)
- 프로그램 카운터(Program Counter,PC)는 중앙처리장치 내부에 있는 레지스터 중의 하나로서, 다음에 실행될 Process의 주소값이 저장되어있다. (=명령어 포인터)
<Five-State Process Model>
- Ready : Process가 CPU를 점유 할 준비가 된 상태
- Running : Process가 CPU를 점유하고 있는 상태
- Blocked (= wait state, sleep state) : Process가 event가 나타나는 것을 기다리는 상태 (ex. I/O completion)
프로세스 제어 블록 ( PCB : Process Control Block) = (TCB : Task Contol Block)
- 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영체제 커널의 자료구조
- 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 Terminated 되면 PCB는 제거
- OS에 의해 만들어지고 관리
- PCB가 가지고 있는 정보
☞ 프로세스 식별자(Process Identifier)
☞ 프로세스 상태 (Process State)
☞ 프로그램 카운터 (PC:Program Counter)
☞ 메모리 관리 정보 : 해당 프로세스의 주소 공간 등
☞ CPU 레지스터 및 일반 레지스터
☞ CPU 스케줄링 정보 : 우선순위, 최종 실행시각, CPU 점유시간 등
☞ 프로세스 계정 정보 : 페이지 테이블, 스케쥴링 큐 포인터, 소유자, 부모 등
☞ 입출력 상태 정보
프로세스 문맥 ( Process Context )
- Context : 프로그램의 실행 환경
- User Context
- Code : 실행 될 사용자 프로그램 코드 (instructions)
- Data : 프로세스의 전역 변수
- User Stack
☞ LIFO 구조
☞ 사용자 기능을 호출하는 정보를 저장하는 데 사용 ( 함수의 지역 변수, 함수의 인자, register value )
- System Context
☞ System stack ( kernel stack) : 커널 함수를 호출하기 위한 정보를 저장하는 데 사용
☞ Process Control Block (PCB) : 프로세스를 제어하기 위해 운영 체제에 필요한 데이터
'운영체제' 카테고리의 다른 글
교착상태(Deadlock) (0) | 2018.08.28 |
---|---|
세마포어와 뮤텍스 (Semaphores&Mutex) (0) | 2018.08.26 |
병행성과 상호배제&상호배제 알고리즘 (0) | 2018.08.26 |
Thread (0) | 2018.08.24 |
Context Switch (문맥 교환) (0) | 2018.08.23 |