목차
Process Description
* 실선 : 프로세스를 할당함.
* 점선 : 할당 요청은 했으나 할당 받지 못함.
P1이 프로세스를 할당받았기 때문에 P2는 할당을 기다리는 상태이다.
Pn은 메인 메모리에 메모리 요청을 했으므로 이는 new 상태일수도 있고 suspended 상태일 수도 있음.
운영체제가 관리하는 개체에 대해 테이블을 생성한다.
- Memory Table
- I/O Table
- File Table
- Process Table
Memory Table
- 메인 메모리에서 프로세스로 할당
- 보조기억장치에서 프로세스로 할당
- 공유 메모리 영역에서 접근에 대한 보호
- 가상 메모리를 관리하기 위한 정보
I/O Table
- 입출력장치를 할당한다.
- 입출력장치의 상태
- 입출력 전송의 목적지 또는 메인 메모리가 사용되는 위치
File Table
- 파일의 존재유무
- 보조기억 장치의 위치
- 현재 상태
- 특성
- 파일 관리 시스템에 의해 정보 유지
Process Table
- 프로세스 위치
- 프로세스 특성
C 프로그램의 메모리상 구조
텍스트 영역 (text segment)
- CPU에 의해 실행 가능한 명령 코드들
- 프로세스들 간에 공유가 가능하다.
- read-only
데이터 영역 (initalized data segment)
- 실행 시작 시에 초기값을 갖는 변수들
- initialized global / static variables (전역 , static 변수)
비초기화 데이터 영역 (uninitalized data segment) or bss
- bss (block started by symbol)
- uninitialized global / static variables (초기화 되지 않은 전역, static 변수)
힙 (heap)
- 동적 메모리 할당을 위한 영역(malloc)
스택 영역 (stack)
- 사용자 함수 호출에 필요한 여러가지 요소들을 저장 (ex : 지역 변수, 이전 스택 프레임에 대한 포인터, 함수 호출 수행 후의 리턴 주소, 사용한 인자들)
Process Control Block (PCB)
PCB는 다음 세가지를 저장한다.
- Process Identification
- Processor State Information
- Process Control Information
Process Indetification
- Identifiers : 특정 프로세스를 식별하기 위해 부여하는 고유한 번호
(프로세스 식별자, 프로세스를 만든 부모 프로세스식별자, 유저 식별자)
Processor State Information
(프로세서 상태 정보)
- User-Visible Registers
- Control and Status Registers
- Stack Pointers
User-Visible Registers
- 사용자가 제어가능하다.
- 사용자 모드에서 프로세스가 실행하는 기계어로 참조가능하다.
Control and Status Registers
- Program counter : 다음번 실행할 명령어의 주소 포함
- Condition codes : 최초 실행한 operation의 결과 저장
- status information : 실행모드를 결정함 ( 인터럽트를 실행할지 안할지)
-> Program status word (PSW)는 이를 포함하고 있음.
Stack Pointers
- 각 프로세스는 시스템 스택을 가지고 있는데, 스택은 파라미터를 저장하거나 주소를 저장하는데 쓰인다.
Process Control Information
(프로세스 제어 정보)
Scheduling and State Information
- Process State
- Priority
- Scheduling-related information
- Event
Process State
(ex : running, ready, waiting, halted)
Priority
-프로세스의 우선순위를 나타내는데 사용된다.
Scheduling-related information
- 사용되는 스케줄링 알고리즘에 의존한다.
Event
- 다시 시작하기 전까지 프로세스는 기다린다.
Data Structuring
프로세스는 큐, 링, 또는 다른구조로 연결되어 있다.
ex) waiting state인 모든 프로세스는 특정한 우선순위에 따라 큐에서 연결되어있다.
PCB는 이러한 구조들을 서로서로 연결하는 포인터를 포함하고있다.
Interprocess Communication
다양한 신호와 메시지들은 두 독립적인 프로세스들 사이에서 정보를 교환한다.
Process Privileges
프로세스들은 실행될 명령의 타입에따라 메모리에서 특권을 부여받는다. 그 특권은 시스템 사용과 서비스에 적용된다.
Memory Management
이 프로세스에 할당된 가상 메모리를 나타내는 세그먼트 및 페이지 테이블에 대한 포인터가 포함된다.
Resource Ownership and Utilization
어떤 파일이 어떤 프로세스에 의해서 어떤 모드로 생성되는지에대한 정보
가상 메모리에서의 유저프로세스
*System stack은 shared address space에 있다고 봄
'🖥️ Computer Science > Operating System' 카테고리의 다른 글
[운영체제] Process Creation (0) | 2024.04.19 |
---|---|
[운영체제] Threads, SMP, Microkernels (1) | 2024.04.09 |
[운영체제] Process Description and Control - 3 (0) | 2024.04.03 |
[운영체제] Process Description and Control - 1 (0) | 2024.03.21 |
[운영체제] Computer System Overview (0) | 2024.03.15 |