-
Program & ProcessCS/OS(운영체제) 2022. 4. 12. 01:53728x90
Program Vs Process
Program - 디스크에 저장되는 수동적인 entity ( binary sequence )
Process - 활동적인 entity ( execution sequence ) , 프로세서에 할당하고 실행할 수 있는 entity
실행 파일을 메모리에 로드할 때, 프로그램이 프로세스로 전환됨.
하나의 프로그램이 여러 프로세스 일 수 있음.
프로세스는 또한 Program Code와 그 코드에 관련된 데이터의 집합을 필수적인 elements로 가짐.
Execution Sequence and Stack
실행 순서를 제어하기 위한 공통된 기술
Stack - last-in-first-out (LIFO) 구조
Call Stack - 프로그램의 서브 루틴에 대한 정보를 저장하는 스택 데이터 구조
프로세서가 호출을 실행할 때, 스택에 리턴 주소를 push함.
Stack pointer - 스택의 현재 top 주소를 포함한다.
Stack Base(Higher Address) <= SP <= Stack Limit
오늘날 대부분의 프로세서에서 스택은 높은 주소에서 낮은 주소로 실행함.
return address를 쌓고 , 호출된 procedure에 전달할 parameter를 쌓고 , return parameters는 return address 아래에 배치될 수도 있음.
Process Description
1. System-level Context
운영체제가 프로세스를 관리하는데 필요로 하는 정보를 포함하고 있음.
PCB(Process Control Block) - 프로세스 신원 / 프로세스 제어 정보 / 프로세스 상태 정보
2. User-level Context(memory)
유저의 프로그램(text and data areas)의 기본 구성요소들을 포함하고 있음.
프로세스가 실행하는 동안 프로세서는 스택을 사용함. User text / User data / User stack
3. Hardware Context(register)
레지스터들의 내용으로 구성됨.
PC , SP , PSW + General-purpose registers
PCB(Process Control Block)
- 운영체제에서 가장 중요한 데이터 구조.
- 운영체제가 필요로하는 프로세스에 대한 모든 정보를 포함함.
- 운영체제가 다중 프로세스를 지원하기 가능하게 하고 멀티 프로세싱을 제공함.
- OS안에 있는 모든 모듈에 의해 block들이 read하거나 modified함.
Process Image
운영체제가 프로세스를 제어하고 관리하기 위해 반드시 알아야 할 것이 무엇일지 생각해보자.
프로세스가 어디에 위치하고 있는지를 알아야 할 것이고, 프로세스를 관리하기 위해 필요한 프로세스의 속성 등을 알아야 할 것이다.
그래서 운영체제는 각 프로세스의 설명 수단으로서 process image를 유지한다. ( 프로세스가 실행되는 주소 공간 및 PCB)
Two-State Process Model
프로세스는 프로세서에 의해 실행되거나 , 실행되지 않는다.
Five-State Process Model
실행 중이 아닌 상태의 일부 프로세스들은 실행 준비가 되어 있고, 다른 프로세스는 차단되어 I/O 작업이 완료될 때까지 대기하고 있음.
728x90'CS > OS(운영체제)' 카테고리의 다른 글
인터럽트(Interrupts) (0) 2022.04.17 컴퓨터 하드웨어(Computer Hardware) (0) 2022.04.17 Process Scheduling (0) 2022.04.12 Process Switch (0) 2022.04.12 Resource Protection & System Call (0) 2022.04.11