<프로세스>
: 실행중인 프로그램. 디스크에 저장된 수동적 파일(실행 파일)이 메모리에 적재될 때 프로세스가 됩니다.
<메모리 상에서의 프로세스>
: 메모리 상의 특정 위치를 할당받고, 내부적으로 메모리를 동적으로 조절합니다.
1) 텍스트 세션 : 실제 실행 코드가 담겨 있으며, 고정된 메모리 영역을 할당받습니다.
* 텍스트 외의 세션은 고정되어 있지 않음(항상 같은 주소값을 가지진 않음).
2) 스택 세션 : 함수 호출 시 임시 데이터 저장 - 함수 매개 변수, 반환 주소, 지역 변수 등
3) 힙 세션 : 프로그램 실행 시 동적으로 할당되는 메모리
4) 데이터 세션 : 전역 변수
<프로세스 상태 별 키워드>
- New : 프로세스가 생성 중
- Running : 내부적으로 명령어들이 실행 중
- Waiting : 사건(IO)들이 일어나기를 대기
- Ready : 프로세스가 처리기에 할당 되기를 기다림
- Terminated : 프로세스 실행이 종료된 상태
비효율적인 단일프로세스가 아니고서야, 매번 new~terminated로 가지 않고, ready~running~waiting을 돌게 됩니다.
<프로세스 제어 블록(Process Control Block)>
: 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는 운영체제 커널의 자료 구조. 운영체제에 따라 달라지긴 하는데, 일반적으로 다음과 같은 정보가 포함되어 있습니다.
- process ID : 프로세스 식별자
- process state : 프로세스 상태를 체크
- program counter : 프로세스가 다음에 실행할 명령어의 주소를 가지고 있음
- registers : CPU 레지스터 및 일반 레지스터
- scheduling information : 우선 순위, 최종 실행시각, CPU 점유 시간 등
- memory related information : 해당 프로세스의 주소 공간 등
- accounting information : 프로세스 계정 정보. 페이지 테이블, 스케줄링 큐 포인터, 소유자, 부모 등
- status information related to I/O : 입출력 상태 정보. 프로세스에 할당된 입출력장치 목록, 열린 파일 목록 등
* PCB은 프로세스의 중요한 정보를 포함하고 있기 때문에, 일반 사용자가 접근하지 못하도록 보호된 메모리 영역 안에 남습니다. 일부 운영 체제에서 PCB는 커널 스택 처음에 위치한다. (편리하면서도 보호를 받는 메모리 영역이기 때문)
'[Computer Science] > [운영체제(OS)]' 카테고리의 다른 글
[운영체제(OS)] 3-3) 컨텍스트 스위치 (0) | 2023.01.11 |
---|---|
[운영체제(OS)] 3-2) 프로세스 스케쥴링 (0) | 2023.01.11 |
[운영체제(OS)] 2-2) 커널(Kernel)과 시스템 콜(System Call) (0) | 2023.01.04 |
[운영체제(OS)] 2-1) 운영체제 서비스 (0) | 2023.01.04 |
[운영체제(OS)] 1-2) 부팅 매커니즘과 인터럽트(interrupt) (0) | 2023.01.03 |