일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 멀티쓰레드
- 그리디알고리즘
- I/O장치
- DirectX 12
- codility
- 다이나믹프로그래밍
- 락
- 멀티프로세서
- 타입 객체
- 영속성
- directx
- 백준
- 자료구조
- Direct12
- 병행성 관련 오류
- 디자인패턴
- 운영체제
- 동적계획법
- OS
- 렌더링 파이프라인
- 그리디 알고리즘
- 스케줄링
- 병행성
- 다이나믹 프로그래밍
- 프로그래머스
- 컨디션 변수
- DirectX12
- 알고리즘
- 파일시스템 구현
- 쓰레드
- Today
- Total
기록공간
4-3-8장. 프로세스의 개요 - A 본문
프로세스(Process)의 정의
프로세스는 일반적으로 프로세서(처리기, CPU)에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 즉 실행중인 프로그램을 의미하며, 작업(Job), 태스크(Task)라고도 한다.
-
프로세스는 다음과 같이 여러 형태로 정의할 수 있음
-
PCB를 가진 프로그램
-
실기억장치에 저장된 프로그램
-
프로세서가 할당되는 실체로서, 디스패치가 가능한 단위
-
프로시저가 활동중인 것
-
비동기적 행위를 일으키는 주체
-
지정된 결과를 얻기 위한 일련의 계통적 동작
-
목적 또는 결과에 따라 발생되는 사건들의 과정
-
운영체제가 관리하는 실행 단위
-
PCB(Process Control Block, 프로세스 제어 블록)
PCB는 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳으로, Task Control Block 또는 Job Control Block이라고도 한다.
-
각 프로세스는 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거
-
PCB에 저장되어 있는 정보는 다음과 같음
프로세스 상태 전이
프로세스 상태 전이는 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것을 의미하며, 프로세스의 상태를 다음과 같이 상태 전이도로 표시할 수 있다.
-
프로세스의 상태는 제출, 접수, 준비, 실행, 대기 상태로 나눌 수 있으며, 이 중 주요 세 가지 상태는 준비, 실행, 대기 상태이다.
-
제출(Submit) : 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태
-
접수(Hold) : 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태
-
준비(Ready)
-
프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
-
프로세스는 준비상태 큐에서 실행을 준비하고 있음
-
접수 상태에서 준비 상태로의 전이는 Job 스케줄러에 의해 수행
-
-
실행(Run)
-
준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
-
프로세스 수행이 완료되기 전에 프로세스에게 주어진 프로세서 할당 시간이 종료되면 프로세스는 준비 상태로 전이
-
실행중인 프로세스에 입출력 처리가 필요하면 실행중인 프로세스는 대기 상태로 전이
-
준비 상태에서 실행 상태로의 전이는 CPU 스케줄러에 의해 수행됨
-
-
대기(Wain), 보류, 블록(Block) : 프로세스에 입출력 처리가 필요하면 현재 실행중인 프로세스가 중단되고, 입출력 처리가 완료될 때까지 대기하고 있는 상태
-
종료(Terminated, Exit) : 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태
프로세스 상태 전이 관련 용어
-
Dispatch : 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이되는 과정
-
Wake Up : 입출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이 되는 과정
-
Spooling : 입출력장치의 공유 및 상대적으로 느린 입출력장치의 처리 속도를 보완하고 다중 프로그래밍 시스템의 성능을 향상시키기 위해 입출력할 데이터를 직접 입출력장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정
-
교통량 제어기(Traffic Controller) : 프로세스의 상태에 대한 조사와 통보를 담당
스레드(Thread)
스레드는 프로세스 내에서의 작업 단위로서 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위이다.
-
하나의 프로세스에 하나의 스레드가 존재하는 경우에는 단일 스레드, 하나 이상의 스레드가 존재하는 경우에는 다중 스레드
-
프로세스의 일부 특성을 갖고 있기 때문에 경량(Light Weight) 프로세스라고도 함
-
스레드 기반 시스템에서 스레드는 독립적인 스케줄링 최소 단위로서 프로세스의 역할을 담당
-
동일 프로세스 환경에서 서로 독립적인 다중 수행이 가능
-
스레드의 분류
-
스레드 사용의 장점
-
하나의 프로세스를 여러 개의 스레드로 생성하여 병행성을 증진시킬 수 있음
-
하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상시킬 수 있음
-
응용 프로그램의 응답 시간을 단축시킬 수 있음
-
실행 환경을 공유시켜 기억장소의 낭비가 줄어듬
-
프로세스들 간의 통신이 향상
-
스레드는 공통적으로 접근 가능한 기억장치를 통해 효율적으로 통신
-
'자격증공부 > 정보처리기사_필기' 카테고리의 다른 글
4-3-10장. 환경 변수 - C (0) | 2020.09.19 |
---|---|
4-3-9장. 스케줄링 - B (0) | 2020.09.19 |
4-3-7장. 가상기억장치 기타 관리 사항 - A (0) | 2020.09.19 |
4-3-6장. 가상기억장치 구현 기법/페이지 교체 알고리즘 - A (0) | 2020.09.19 |
4-3-5장. 주기억장치 할당 기법 - C (0) | 2020.09.19 |