사전지식
프로그램
: 특정 작업을 수행하는 일련의 명령어들의 집합체
프로세스
: 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램
: 운영체제로 부터 시스템 자원을 할당받는 작업의 단위
스레드
: 프로세스 내에서 실행되는 흐름의 단위
: 프로세스가 할당받은 자원을 이용하는 실행의 단위
프로세스의 구성
프로세스의 구성
프로세스 제어 블록 (Process Control Block, PCB)
- 프로세스에 관한 모든 정보를 가진 데이터베이스
- 운영체제 커널에 존재
- Task Control Block의 TCB라고도 불림
- PID (Process IDentification) / Process Number
: 운영체제의 프로세스 식별을 위해 부여된 식별 번호
- 프로세스 상태 (Process Status)
: CPU 내에서 프로세스는 교체되면서 실행되는데, 이때 실행과 대기와 같은 상태
: 생성 new (프로세스가 생성되고 있는 과정)
: 준비 ready (실행준비가 끝난 상태에서 다른 프로세스의 중단을 기다리는 상태)
: 대기 waiting (I/O나 다른 이벤트의 발생을 기다리는 상태)
: 실행 running (프로세스가 CPU에서 수행중인 상태)
: 종료 terminated (프로세스가 종료된 상태)
- 프로그램 카운터 (Program Counter)
: CPU가 다음으로 실행할 명령어를 가리키는 값
: 기계어가 저장된 메모리 주소를 가리킴
- 레지스터 정보 (Register Information)
: CPU 내 레지스터에 대한 정보
- 스케쥴링 정보
: 프로세스의 우선순위에 관한 정보
: 우선순위 (프로세스가 CPU에서 실행되는 순서를 결정한 순위)
- 메모리 정보 (Memory Information)
: 메모리에 할당된 프로세스의 주소
- accounting information
: CPU 사용시간 및 실제 사용시간에 대한 정보
- 입출력 상태정보
: 프로세스가 접근 가능한 자원에 대한 정보
: 프로세스의 실행중 열린 파일에 대한 정보
: 리소스 활용과 관련된 세부 정보
- 포인터 (pointer)
: 프로그램의 정보가 저장된 메모리의 대한 주소값
: 프로세스의 데이터와 명령어, 할당 자원을 가리킴
- 부모프로세스 혹은 자식 프로세스의 ID
: 부모프로세스 (특정 프로세스를 생성한 프로세스)
: 자식프로세스 (부모 프로세스에 의해 만들어진 프로세스)
프로세스의 종류
시스템(커널) 프로세스 (System / Kernel Process)
- 시스템 자원에 액세스 가능한 프로세스
- 역할
: 프로세스들의 실행순서를 제어하거나 커널 영역을 감시
: 사용자 프로세스 생성
사용자 프로세스 (User Process)
- 사용자 코드를 수행하는 프로세스
- 사용자 코드
: 사용자가 실행하고자 하는 코드
=> 사용자가 실행하고자 하는 코드를 수행하는 프로세스
병행 프로세스 (Concurrent Process)
- 두개 이상의 프로세스가 동시에 실행되는 형태
- 독립 프로세스
: 다른 프로세스에 영향을 주고 받지 않으면서 수행하는 병행 프로세스
- 협력 프로세스
: 다른 프로세스에 영향을 주고 받으며 수행하는 병행 프로세스
※ 병행 프로세스 vs 병렬 프로세스
: 병행 프로세스
= 동시성을 지닌 프로세스
= 운영체제가 프로세스를 빠르게 전환하여 동시에 실행하는 것 처럼 보이게 하는 것
: 병렬 프로세스
= 여러개의 프로세스를 병렬적으로 실행하는 것 (병렬성)
프로세스 실행모드
- 사용자 프로세스가 함부로 운영체제의 치명적인 데이터를 수정하거나 삭제하지 못하게 하기 위해
시스템 자원과 메모리에 대한 접근을 제어하는 것
- 커널모드
: 시스템 프로세스가 실행되는 모드
: 모든 시스템 자원과 메모리에 접근이 가능하며 모든 CPU 명령어 사용이 가능한 모드
: 시스템 서비스 호출시 잠시 전환
- 사용자모드
: 사용자 프로세스가 실행되는 모드
: 하드웨어에 직접 접근 불가
: 시스템 데이터에 대한 제한된 접근
'Computer Science > OS' 카테고리의 다른 글
CPU의 구조와 명령어 수행 과정 (0) | 2021.02.05 |
---|---|
프로세스와 운영체제 (0) | 2021.02.03 |
스레드 (0) | 2021.02.03 |
프로세스와 메모리 (0) | 2021.02.03 |
프로세스와 CPU (0) | 2021.02.03 |