320x100
320x100

사전지식

프로그램

: 특정 작업을 수행하는 일련의 명령어들의 집합체

 

프로세스

: 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램

: 운영체제로 부터 시스템 자원을 할당받는 작업의 단위

 

스레드

: 프로세스 내에서 실행되는 흐름의 단위

: 프로세스가 할당받은 자원을 이용하는 실행의 단위

 

 

 

 

 

 

프로세스의 구성

프로세스의 구성

프로세스 제어 블록 (Process Control Block, PCB)

- 프로세스에 관한 모든 정보를 가진 데이터베이스

- 운영체제 커널에 존재

- Task Control Block의 TCB라고도 불림

출처 : https://www.includehelp.com/operating-systems/process-control-block-in-operating-system.aspx

 

 

- PID (Process IDentification) / Process Number

: 운영체제의 프로세스 식별을 위해 부여된 식별 번호

 

 

- 프로세스 상태 (Process Status)

: CPU 내에서 프로세스는 교체되면서 실행되는데, 이때 실행과 대기와 같은 상태

출처 : https://jhnyang.tistory.com/7

: 생성 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 명령어 사용이 가능한 모드

 : 시스템 서비스 호출시 잠시 전환

 

- 사용자모드

 : 사용자 프로세스가 실행되는 모드

 : 하드웨어에 직접 접근 불가

 : 시스템 데이터에 대한 제한된 접근

 

 

 

 

 

 

 

 

 

 

 

 

 

 

300x250
728x90

'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