250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 운영체제
- 서비스프로그램
- 프론트엔드
- 타입스크립트
- useCallback
- 데이터베이스
- 프로덕트구조
- Migration
- webpack
- 리액트
- 선점 스케줄링
- react
- 블록체인용어
- sql
- roadhog
- 자바스크립트
- react코어
- 코드서울
- 처리프로그램
- 오라클
- javascript
- 감시프로그램
- 제어프로그램
- Database
- typescirpt
- dbms
- Oracle
- 마이그레이션
- 프로덕트관리
- typescript
Archives
- Today
- Total
Develop+
프로세스/PCB/스풀링(spooling) 정리 본문
728x90
실행 중인 프로그램, 작업의 기본이 되는 단위로 프로그램에 상태를 결합한 형태를 가지고 있다.
보저기억장치에서 실행이 될 때 주기억장치에 적재가 되어 프로그램 안에서 프로세스로 나누어 진다.
-
작업(Task), Job, Thread 와 다같이 사용되고 다양한 정의를 가진다.
-
실행 중인 프로그램이라는 일반적인 정의로도 사용됨.
-
주기억장치(Ram)에 주소 공간을 갖는 능동적인 개체이다.
-
각 프로그램들은 각 기능들에 따라 프로세스로 나누어져 실행된다.
-
운영체제가 관리하는 최소 단위의 작업
-
PCB(Process Control Block)을 가진 프로그램
-
프로시저가 활동중인 것
-
프로시저 : 특정 작업을 수행하기 위한 작업 프로그램
-
★비동기적 행위를 일으키는 주체
-
비동기적 행위 : 프로세스가 규칙적 . 연속적이지 않게 실행되는 것
-
실 기억장치(주기억장치RAM)에 저장된 프로그램
-
CPU에 의해 수행되는 사용자 및 시스템 프로그램
PCB(Process Control Block)
운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳이다.
-
태스크 제어 블록 (Task Control Block)으로도 불린다.
-
cpu에게 프로세서에 대한 정보를 제공해주는 자료구조 테이블
-
각 프로세스가 생성될 때마다 pcb가 생성되며 완료되면 pcb는 제거가 된다.
-
부모 프로세스와 자식 프로세스는 pcb를 공유하지 않고 단독으로 사용된다.
-
pcb는 자신만의 프로세스만을 위해 사용할 수 있다.
실행 유형에 따른 분류
운영체제
프로세스
|
프로세스의 실행 순서 및 사용 환경 프로세스가 항상 다른 사용자의 영역을 침범하지 못하게 감시하는 기능 담당
사용자 프로세스 생성, 입출력 프로세스와 같은 운영에 필요한 작업을 수행
|
사용자
프로세스
|
사용자 코드를 수행
|
병행
프로세스
|
프로세스 여러 개가 동시에 실행되며, 독립 프로세스와 협동 프로세스로 구분된다.
|
프로세스 상태
디스패치(dispatch)
생성 -> 준비( ready ) -> 실행( running ) -> 완료
입.출력 종료(wake up)↖↘대기, 보류↙(입출력 요구 block)
프로세스는 상황과 조건에 따라 실행(running), 준비(ready), 대기(wait) 상태에 있다가 다른 상태로 전이를 반복함
-> PCB 에 상태가 저장되어 있다.
디스패치
(dispatch)
|
준비상태에서 실행상태로 전이되는 과정, 작업 스케줄러가 해당 프로세스를 선택하여 실행
|
wake up
(linking)
|
입 출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정
|
제줄 (submit)
|
작업을 처리하기 위해 시스템에게 제출한 상태
제출된 작업은 스풀 공간인 디스크의 할당 위치에 저장된 상태
|
준비(ready)
|
프로세스가 실행을 준비하고 있는 상태
|
실행(running)
|
준비 상태 큐에 있는 프로세스가 할당을 받아 실행중인 상태
|
대기(wait),
보류(blocked)
|
프로세스에 입.출력 처리가 발생하면 입출력이 완료된 때까지 대기 큐에서 대기하고 있는 상태
-block : 실행중인 프로세스가 지정된 시간 이전에 다른 작업을 위해 스스로 프로세스를 양도하고 대기 상태로 전이됨
-wake up : 입. 출력 작업이 끝났을 때 프로세스가 다시 준비 상태로 전이된다.
|
완료(complete)
|
프로세스가 cpu를 할당받아, 주어진 시간 내에 수행을 종료한 상태.
|
실행중지(suspend)
|
프로세스가 입.출력 이외에 다른 이유에 의해 실행되지 못하는 상태
실행이 중지된 프로세스는 다른 프로세스로 시작하기 전까지는 실행이 될 수 없음
실행중지 원인
|
스풀링
다중 프로그래밍 환경에서 보조기억장치(디스크)를 이용해, 출력할 데이터를 직접 프린터에 보내지 않고 보조 기억장치에 모았다가 한번에 출력함으로써 프린터장치의 공유 및 프린터 처리 속도를 보완하는 기법
구분
|
스풀링
|
버퍼링
|
공통점
|
입출력 장치와 cpu간의 속도 차이를 해소하기 위해 나온 기법
|
스풀링과 같음
|
차이점
|
디스크
|
주기억장치
|
728x90
'운영체제' 카테고리의 다른 글
스레드의 종류와 정의/분류 (0) | 2021.01.03 |
---|---|
프로세스의 인터럽트/처리순서 (0) | 2021.01.03 |
매크로와 매크로 프로세서 처리과정 정리 (0) | 2020.12.31 |
시스템 소프트웨어 링커와 로더 요약 (0) | 2020.12.31 |
시스템 소프트웨어 (0) | 2020.12.31 |