• 검색 결과가 없습니다.

1. 프로세스 개요

N/A
N/A
Protected

Academic year: 2022

Share "1. 프로세스 개요 "

Copied!
22
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

운영체제 강의노트

 교재 : 운영체제(개정판)

 출판사 : 한빛미디어(2010년 11월 발행)

 저자 : 구현회

(2)

 3장

프로세스와 스레드

(3)

1. 프로세스 개요

• 프로세스라는 개념의 등장

• 1960년대 MIT, GE, Bell Lab이 공동으로 개발한 메인 프레임용 시분할 운영체제인 Multics에서 최초로 사용

• 프로세스(process)에 대한 정의

• 실행 중인 프로그램

• 비동기적(asynchronous) 행위

• 실행 중인 프로시저

• 실행 중인 프로시저의 제어 추적

• 운영체제에 존재하는 PCB(Process Control Block)

• 프로세서에 할당되어 실행될 수 있는 개체

• 디스패치(dispatch)가 가능한 대상

• 가장 유력한 정의

• ‘실행 중인 프로그램’

• 디스크에 저장되어 있던 실행 가능한 프로그램이 주기억장치에 적재되어 운영체제의 제어를 받는 상태

프로세스 개념

(4)

1. 운영체제의 역할과 목적

• 관점에 따른 프로세스의 정의

• 사용자 관점 : 세그먼트(코드, 데이터, 스택 등)의 가상 주소 공간을 갖는 실행 상태

• 시스템 관점 : 실행 중인 프로그램

장치 메모리 프로세서 다른 하드웨어

장치관리 메모리관리 파일관리

컴퓨팅 환경

교착상태 프로세스 기술 보호

동기화 스케쥴러

자원관리

프로세스

프로그램

(5)

1. 프로세스 개요

• 운영체제 프로세스

• ‘커널 프로세스’ 또는 ‘시스템 프로세스’라고 함

• 사용자 프로세스 실행 순서를 제어

• 사용자 프로세스가 운영체제 영역을 침범하지 못하도록 감시

• 사용자 프로세스 또는 입출력 프로세스 생성 및 관리

• 사용자 프로세스

• 사용자가 실행 요청한 프로그램이 수행되는 상태

• 병행 프로세스

• 여러 개의 프로세스가 동시에 실행되는 상태

• 독립 프로세스 : 수행 중인 여러 프로세스가 상호 영향을 주거나 데이터를 공유하지 않는 상태

• 협동 프로세스 : 수행 과정에서 상호 데이터 교환 또는 공유가 이 루어지거나 제한된 컴퓨터 자원을 사용하는 과정에서 운영체제에 의해 통제되는 상태

프로세스 종류

(6)

1. 프로세스 개요

• 실행 상태와 비실행 상태

• 운영체제가 프로세스를 새로 생성하면 최초에는 비실행 상태로 초 기화되어 실행을 대기

• 실행 중이던 프로세스가 종료되거나 인터럽트되면 비실행 상태에 있던 프로세스 중 하나가 실행 상태로 전환됨

프로세스 상태

비실행 실행

생성 종료

디스패치

인터럽트

(7)

1. 프로세스 개요

• 실행 상태, 대기 또는 보류 상태, 준비 상태

• 실행 상태(running state) : CPU를 소유하여 명령어가 실행되는 상태로 단일 프로세서 시스템에서 실행 상태에 있는 프로세스는 오 직 1개임

• 대기 또는 보류 상태(block state) : 입출력 작업이 종료되기를 기 다리는 상태

• 준비 상태(ready state) : CPU를 할당받기 위해 대기하고 있는 상 태

준비 실행

생성 종료

대기 (보류)

(8)

1. 프로세스 개요

• 프로세스 생명 주기

• 하나의 프로세스는 생성되어 종료되기 전까지 준비, 실행, 대기 상 태를 수 차례 반복하게 됨

프로세스 상태 변화

준비

실행

대기 (보류)

디스패치

시간종료

종료

조건만족

입출력발생

생성

(9)

1. 프로세스 개요

• 프로세스와 디스패처

• 프로세스는 CPU를 직접 점유할 수 없고, 운영체제의 일부인 디스 패처가 현재 준비 중인 프로세스 중 우선순위가 가장 높은 프로세스 에게 CPU를 할당해야 비로서 실행 상태로 전이하게 됨

프로 세스

프로세스 1 프로세스 2 … 프로세스 n

디스패처 운영체제

준비 큐

(10)

1. 프로세스 개요

• 프로세스 상태 전이

• 준비 → 실행

• 준비 큐에서 우선순위가 가장 높아서 디스패처에 의해 CPU 를 할당받게 되는 상태 변화

• 실행 → 준비

• CPU를 사용할 수 있도록 정해진 시간 동안 수행했음에도 불구하고 종료가 되지 않으면 CPU를 해제하고 준비 큐의 가 장 뒤에 가서 다음 순서를 기다리게 되는 상태 변화

• 실행 → 대기

• CPU를 사용하던 중 입출력 명령이 발생하여 CPU를 사용 할 수 있는 시간이 아직 남아있지만 더 이상 CPU를 사용할 필요가 없게 되는 상태 변화

• 대기 → 준비

• 입출력 동작이 종료되어 다시 CPU를 필요로 하게 되는데 앞서 CPU 사용 시간이 좀 남았다고 하더라도 남은 시간을 쓸 수 없고 다시 준비 큐의 가장 뒤에 가서 다음 순서를 기다리 게 되는 상태 변화

(11)

1. 프로세스 개요

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

• 프로세스는 생성되어 종료될 때까지 수 차례에 걸쳐 상태 전이를 일으키게 되는데 상태가 전이될 때마다 이전 상태를 기억하고 있 지 않으면 다시 실행 상태로 돌아왔을 때 어디서부터 실행할 것인 지에 대해 알 수 없음

• PCB는 프로세스가 소멸될 때까지 다음과 같은 내용을 관리하는 이력서

• 프로세스 식별자

• 프로세스 상태

• 프로그램 카운터

• 레지스터 저장 영역

• 프로세서 스케줄링 정보

• 계정 정보

• 입출력 상태 정보

• 메모리 관리 정보 프로세스 제어 블록

(12)

1. 프로세스 개요

프로세스 교환

프로세스 P1 운영체제 프로세스 P2

PCB1에 P1 문맥 저장 Interrupt나 system call

PCB2에서 P2 문맥 복구

PCB2에 P2 문맥 저장 PCB1에서 P1 문맥 복구

유휴

유휴 유휴

실행

실행

실행

(13)

2. 프로세스 관리

• 프로세스 생성 단계

• 1단계 : 새로 생성된 프로세스에 식별자 할당

• 2단계 : 프로세스에게 주소 공간과 PCB를 할당

• 3단계 : PCB 초기화

• 4단계 : 프로세스를 준비 큐에 삽입

• 프로세스 종료

• 정상 종료 : 프로세스가 운영체제의 서비스를 받기 위해 시스템 을 호출한 경우

• 시간 초과 : 프로세스에게 할당된 시간을 초과하여 실행된 경우

• 실패 : 파일 검색 실패

• 오류 : 산술 오류, 보호 오류, 데이터 오류

• 기타 : 메모리 부족, 접근 위반 등

• 프로세스 제거

• 프로세스에 할당된 모든 자원을 회수하고, 디스크로 돌려보내는 것

프로세스 생성 및 종료

(14)

2. 프로세스 관리

• 시스템 부하를 줄이기 위해 필요한 경우 정상적으로 동작 중인 프로세 스를 일시적으로 중단함

• 시스템 장애가 발생하여 장애를 제거할 목적으로 중단

• 프로세스의 특정 부분이 의심스러울 때 확인할 목적으로 중단

• 실행 중인 프로그램이 너무 많거나 특정 프로그램의 크기가 너무 커서 시스템 성능이 하락한 경우, 성능 회복을 목적으로 중단

프로세스 중단과 재시작

준비

중단 준비

대기

중단 대기

중단 실행

중단

중단 재시작 재시작

타임아웃 디스패치

대기 입출력이나 이벤트 완료

입출력이나 이벤트 완료

활동상태 중단상태

(15)

2. 프로세스 관리

• 프로세스 우선순위란?

• 모든 프로세스는 PCB에 자신만의 우선순위 정보를 갖고 있음

• 단, 프로세스 우선순위는 영구 불변의 것이 아니라 우선순위 변 경 사유가 발생하면 얼마든지 변할 수 있음

• 프로세스 우선순위 조정

• 입출력 중심의 프로세스는 프로세서를 자주 짧게 사용하고, 프로 세서 중심 프로세스는 프로세서 사용 횟수는 적지만 한번에 오래 사용하게 하여 시스템 성능 유지

• 문맥 교환

• 프로세스의 상태가 실행 상태에서 다른 상태로 바뀔 때 지금까지 의 상황을 PCB에 저장하고 새로 실행 상태가 되는 프로세스의 PCB에서 실행에 필요한 정보를 인출해야하는데 이것을 문맥 교환 이라고 함

• 문맥 교환은 기본적으로 오버헤드이므로 문맥 교환 횟수를 최소 화하기 위한 노력이 필요함

프로세스 우선순위 변경 및 문맥교환

(16)

3. 스레드

• 스레드(Thread)란?

• 프로세스와 마찬가지로 프로세서를 사용하는 기본 단위

• 명령어를 독립적으로 실행할 수 있는 하나의 제어 흐름

• 경량 프로세스(light weight process)라고도 함 스레드 개요

커널

프로세스

스레드 1의 스택 스레드 2의 스택

스레드 1 스레드 2 스레드 3

(17)

3. 스레드

• 스레드의 장점

• 사용자에 대한 응답성 증가

• 예를 들어, 웹 브라우저에 다중 스레드가 적용되면 하나의 스레드가 파일을 로딩하는 동안 다른 스레드는 사용자와 상 호작용을 가능하게 함

• 프로세스 자원과 메모리 공유 가능

• 스레드는 그 자신이 속한 프로세스의 자원과 메모리를 공유 하므로 프로그램 하나가 같은 주소 공간에서 여러 개의 스레 드를 실행시켜서 시스템 성능을 향상시킴

• 경제성

• 하나의 프로세스와 자원을 공유하므로 메모리 자원을 할당 해 프로세스를 생성하는 것보다 스레드를 생성하여 문맥을 교환하여 오버헤드를 줄일 수 있음

• 다중 프로세서 구조 활용 가능

• 프로세서가 여러 개일 때 스레드는 각각 다른 프로세서에 의해 병렬 실행 가능

(18)

18

3. 스레드

• 단일 스레드란?

• 프로세스 하나에 스레드 하나가 생성되는 것으로 스레드의 의미가 없음

• 대표적인 운영체제가 MS-DOS

• 다중 스레드란?

• 프로세스 하나에 여러 개의 스레드가 생성되는 것

• 대표적인 운영체제가 윈도우 NT, 윈도우 XP 이상, 솔라리스 등 단일 스레드와 다중 스레드

커널

사용자영역

커널영역

프로세스1 프로세스2 프로세스3

스레드

커널

프로세스

스레드

(19)

3. 스레드

• 프로세스 관리 측면에서의 스레드

• 단일 스레드 프로세스 모델은 프로세스를 스레드가 가진 레지스터 와 스택으로 표현

• 다중 스레드 프로세스 모델은 프로세스를 각각의 스레드와 고유의 레지스터, 스택으로 표현하며 프로세스 주소 영역을 모든 스레드가 공유하기 때문에 프로세스의 모든 스레드는 해당 프로세스의 자원 과 상태를 공유하고, 같은 주소 공간에 존재하며, 동일한 데이터에 접근

코드 데이터 파일

레지스터 스택

스레드

코드 데이터 파일

레지스터

스택

레지스터

스택

레지스터

스택

스레드

(20)

20

3. 스레드

• 프로세스의 상태 전이 감축

• 단일 스레드 방식은 하나의 프로세스가 실행되는 도중 입출력 명 령이 발생하면 다른 프로세스로 실행이 옮겨가는데 이 과정에서 문맥 교환이 이루어지고, 이는 CPU 실행 지연을 야기시킴

• 다중 스레드 방식은 하나의 프로세스 안에 여러 개의 스레드가 있으므로 지금 실행되는 스레드에서 입출력 명령이 발생해서 더 이상 스레드가 실행되지 못하는 상황이 발생해도 프로세스의 상태 를 전이하지 않고, 프로세스 내의 다른 스레드가 실행될 수 있도록 실행 순서를 제어함

• 문맥 교환이 이루어지지 않기 때문에 CPU의 실행이 지연되 지 않음

• 백업 스레드

• 워드프로세서가 실행되는 동안 사용자는 문서를 작성하고 있지 만, 지금까지 작성한 문서를 정기적인 주기로 디스크에 저장하는 방식

스레드 용법

(21)

3. 스레드

• 스레드의 상태 변화는 프로세스의 상태 변화와 거의 비슷함

• 단, 프로세스의 상태 변화는 문맥 교환을 초래하지만 스레드는 상 태 변화가 있더라도 문맥 교환 없이 다른 스레드로 실행의 제어가 넘 어감

• 한 프로세스에 있는 모든 스레드는 기억 공간을 공유하기 때문에 상태 전이에 따라 PCB의 내용을 바꿀 필요가 없음

스레드의 상태 변화

준비 실행

생성 종료

대기 (보류)

(22)

3. 스레드

• 사용자 수준 스레드

• 스레드 테이블을 각 프로세스가 관리

• 커널 수준 스레드

• 스레드 테이블을 커널에서 관리 스레드 구현

커널

사용자영역

커널영역

프로세스 스레드

실행 시스템

프로세스 테이블 스레드 테이블

커널

사용자영역

커널영역

프로세스 스레드

프로세스 테이블

스레드 테이블

참조

관련 문서

 이 데이터 집합은 때때로 평가용 집합(test partition)으로 불리 며 모형을 비교하여 가장 좋은 모형을 선택하기 위해 각각의 모형의 성과를 검증하기 위해

예제: Ubuntu

• 세분 시장 마케팅: 유사한 욕구를 가진 고객 집단으로 구 분하여 몇 개의 시장으로 구분하여 수행하는 마케팅.. 十人十色 :

3 ALDEP(automated layout design program) 은 거리와 같은 계량적인 정보가 없는 경우 사용할 수 있는 공정배치 기법이다. 4 라인밸런싱은 최소개수의

대량 데이터의 처리 -프로세스 혹은 과업 자동화. 대량 데이터의 처리 -프로세스

고객중심의 열린 기업을 만들어가기 위한 수단 고객중심의 열린 기업을 만들어가기 위한 수단. 기존의 관념을 탈피하고

• 기업의 구성원, 외부에 있는 이해관계자들과의 비전과 미션의 공유가 중요함.

‰ 개발 기관이 프로세스 능력의 범위를 향상시키기 위하여 계속 노력하며 이를 통하여 프로젝트 단위의 프로세스