• Tidak ada hasil yang ditemukan

3장 프로세스 기술 3장 프로세스 기술 제어(Control)

N/A
N/A
Protected

Academic year: 2023

Membagikan "3장 프로세스 기술 3장 프로세스 기술 제어(Control)"

Copied!
28
0
0

Teks penuh

(1)

3 장 프로세스 기술 (Description)3 장 프로세스 기술 (Description)

제어 (Control)

3 장의 강의 목표

•• 프로세스의 프로세스의 개념 개념 을 이해한다.

•• 프로세스의 프로세스의 상태 상태 에 대해서 이해한다.

• 프로세스를 표현하는 운영체제의 자료구조를 이해한다.

• 프로세스 제어 블록의 필요성 및 용도를 이해한다.

•• 모드 모드 전환 전환 과 문맥 문맥 교환 교환 에 대해서 이해한다

•• 모드 모드 전환 전환 과 문맥 문맥 교환 교환 에 대해서 이해한다.

• 운영체제의 실행 방식에 대해서 이해한다 .

• 운영체제 보안 이슈에 대해서 이해한다.

(2)

목 차

3.1 프로세스(process)?

3.2 프로세스 상태 (Process States)

3.3 프로세스 기술 (Process Description) 3.4 프로세스 제어 (Process Control)

3 5 운영체제 수행 (Execution of the Operating System) 3.5 운영체제 수행 (Execution of the Operating System) 3.6 보안 이슈 (Security Issues)

3.7 UNIX SVR4 의 프로세스 관리

프로세스 기술 및 제어 3

운영체제 요구조건

• 프로세스 관리: 기본 요구 조건

– 다중 프로세스의 수행을 인터리빙(interleaving) 방식으로 병행적으 로 처리한다.

프로세스에 자원을 할당하고 각 프로세스의 자원을 다른 프로세 – 프로세스에 자원을 할당하고, 각 프로세스의 자원을 다른 프로세

스로부터 보호한다.

– 프로세스간 정보를 공유하고 교환할 수 있게 한다. – 프로세스간 동기화를 지원한다.

(3)

3.1 프로세스란?

• 배경 지식

– 컴퓨터 플랫폼은 하드웨어 자원들의 집합으로 구성컴퓨터 플랫폼은 하드웨어 자원들의 집합으로 구성 – 컴퓨터 응용은 어떤 업무를 수행하기 위해 개발됨

– 주어진 하드웨어 플랫폼 상에서 직접 응용을 작성하는 것은 비효율 적

공통 루틴(common routines) 개발 유도

자원 공유(resource sharing)를 위한 소프트웨어 필요

자원 공유(resource sharing)를 위한 소프트웨어 필요

자원 보호(resource protection) 기법 필요

– OS는 응용이 사용할 수 있는 편리하고, 풍부하고, 안전하고, 일관성 있는 인터페이스를 제공

– OS는 자원들에 대해 균일하고 추상화된 표현(representation)을 제공 응용은 해당 자원을 요청하고 접근 가능

응용은 해당 자원을 요청하고 접근 가능

) Process: model the execution of applications

프로세스 기술 및 제어 5

Process: model the execution of applications

(main concept for multiprogramming, time sharing system)

프로세스란 ?

3.1 프로세스란?

• 정의

수행 중인 프로그램(A program in execution): active entity – 수행 중인 프로그램(A program in execution): active entity – 컴퓨터에서 수행 중인 한 프로그램의 인스턴스(instance) – 한 처리기 상에 할당되어 실행될 수 있는 개체

– 한 처리기 상에 할당되어 실행될 수 있는 개체

– 명령들의 순차 실행, 현재 상태, 연관되어 있는 시스템 명령들의 집 합 등으로 특징지어지는 ‘활동의 단위’(a unit of activity)

• 구조 (Structures)

– 프로그램 코드프로그램 코드(program code)(program code)

(4)

3.2 프로세스 상태 : 수행 궤적 (1/3)

A, B, C 프로세스들의 수행 궤적

프로세스 기술 및 제어 7

프로세스 수행 궤적 (2/3)

3.2 프로세스 상태

• 처리기 관점에서 본 프로세스들의 수행 궤적

(5)

프로세스 수행 궤적 (3/3)

3.2 프로세스 상태

Timing Diagram

프로세스 상태 변화를 쉽게 파악할 수 있게 해줌

• 프로세스 상태 변화를 쉽게 파악할 수 있게 해줌.

프로세스 기술 및 제어 9

Two-State 프로세스 모델

3.2 프로세스 상태

2-상태 프로세스 모델

– 수행(Running)수행(Running) 및 비수행(Not running)및 비수행(Not-running)

(6)

프로세스 생성

3.2 프로세스 상태

• 주소공간 생성 및 프로세스 이미지 구축

fork(Linux) 또는CreateProcess (Windows)를 이용함 – fork(Linux) 또는CreateProcess (Windows)를 이용함 – 부모 프로세스 대 자식 프로세스

프로세스 기술 및 제어 11

프로세스 종료

3.2 프로세스 상태

(7)

프로세스 종료 ( 계속 )

3.2 프로세스 상태

프로세스 기술 및 제어 13

5-State Model

3.2 프로세스 상태

5-상태 프로세스 모델

– 수행 (Running) – 준비(Ready) – 블록 (Blocked) – 생성(New) – 종료 (Exit)

(8)

5- 상태 프로세스 모델에서의 상태 전이

3.2 프로세스 상태 5-State 프로세스 모델

Null Î 생성(New): 생성(create)

• 생성 Î 준비(Ready): 승인(admit)

• 준비 Î 수행(Running): 디스패치(dispatch)

• 수행 Î 준비: 선점 (시간만료 또는 높은 우선순위)

• 수행 Î 블록(Blocked): 사건 대기 (수면)

• 수행 Î 블록(Blocked): 사건 대기 (수면)

• 블록 Î 준비: 사건 발생 (깨움)

• 수행 Î 종료 (Exit): 종료 ( 또는 완료 )

• 준비 Î 종료

• 블록 Î 종료

프로세스 기술 및 제어 15

5- 상태 프로세스 모델의 Queuing Model

3.2 프로세스 상태 5-State 프로세스 모델

• 여러 큐를 사용

• 특히 여러 개의 블록 큐

• 특히, 여러 개의 블록 큐

(9)

보류된 프로세스 (Suspended Process)

3.2 프로세스 상태

• 스와핑 (Swapping)

– 스왑-아웃(swap-out)

종료되지 않은 프로세스의 전체 이미지(또는 일부 이미지)를 주기억 장치로부터 ‘스왑 공간’으로 이동시키는 것

장치로부터 스왑 공간 으로 이동시키는 것

• Swap Space: 디스크의 일부 예약된 영역 – 스왑-인(swap-in)( p )

스왑-아웃된 프로세스의 전체 이미지(또는 일부 이미지)를 스왑 공간 으로부터 주기억장치로 적재하는 것

스와핑도 연산임에 주의 큰 오버헤드 발생

• 스와핑도I/O 연산임에 주의: 큰 오버헤드 발생

•• 스와핑의 스와핑의 필요성 필요성

• 더 많은 가용 메모리(free memory)를 확보하기 위해

• 주기억장치에 준비 상태의 프로세스가 없을 때

프로세스 기술 및 제어 17

보류 상태 포함 프로세스 상태 전이도

3.2 프로세스 상태 보류된 프로세스

(10)

보류 (suspension) 의 이유

3.2 프로세스 상태 보류된 프로세스

프로세스 기술 및 제어 19

보류 프로세스를 포함한 상태 전이

3.2 프로세스 상태 보류된 프로세스

• 새로 도입된 주요 상태 전이

– Blocked ÎBlocked/Suspend: 보류, 즉 스왑-아웃

– Blocked/Suspend ÎReady/Suspend: 보류 상태에서 깨움 – Ready/Suspend ÎReady: 활성화(activate), 즉 스왑-인 – Ready ÎReady/Suspend: 보류, 즉 스왑-아웃

• 기타 상태 전이

– New Î Ready/Suspended – Blocked/Suspend ÎBlocked – Running Î Ready/Suspend – 임의 상태ÎExit

(11)

3.3 프로세스 기술 (description)

• 프로세스를 위해 OS가 자원 관리를 어떻게 해야 하나?

프로세스와 자원

• 프로세스와 자원

프로세스 기술 및 제어 21

운영체제 제어구조

3.3 프로세스 기술

OS 내 제어 구조(control structures)

– 각 프로세스 및 자원의 현재 상태에 대한 정보를 유지

– 보통, OS가 관리하는 각 개체(entity)를 위한 테이블이 구성됨 리 테이블

메모리 테이블

• I/O 테이블(입출력 테이블)

파일 테이블

파일 테이블

•• 프로세스프로세스 테이블테이블

• …

(12)

OS 제어 테이블의 일반적인 구조

3.3 프로세스 기술 운영체제 제어구조

프로세스 기술 및 제어 23

메모리 테이블과 입출력 테이블

3.3 프로세스 기술 운영체제 제어구조

• 메모리 테이블

프로세스들에 할당된 주기억장치 정보 – 프로세스들에 할당된 주기억장치 정보

– 프로세스들에 할당된 2차 메모리(디스크) 정보

– 공유 메모리 영역에 접근하기 위한 보호 속성(Protection attributes) – 가상 메모리(virtual memory)관리에 필요한 정보

I/O 테이블

I/O 테이블

– I/O 연산에 필요한 정보 유지

• I/O장치 이용 가능 또는 특정 프로세스에 할당되어 있음을 표시

• I/O 장치 이용 가능 또는 특정 프로세스에 할당되어 있음을 표시

– I/O 전송에서 소스(source) 또는 목적지 주소로 사용될 주기억장치 에서의 위치

(13)

파일 테이블과 프로세스 테이블

3.3 프로세스 기술 운영체제 제어구조

• 파일 테이블

2차 메모리에서의 위치 – 2차 메모리에서의 위치 – 현재 상태, 속성(Attributes)

– 파일 시스템을 관리하는데 필요한 정보

• 프로세스 테이블

– 프로세스의 위치 정보

– 프로세스에서 사용되는 속성들의 집합인 제어블록(PCB) 정보

프로세스 기술 및 제어 25

프로세스 제어구조

3.3 프로세스 기술

(14)

프로세스 제어 구조 ( 계속 )

3.3 프로세스 기술

• 프로세스 관리의 두 가지 중요 요소

• 프로세스의 메모리 내 위치

• 프로세스의 메모리 내 위치

• 프로세스 속성

프로세스를 제어하기 위해OS가 사용하는 정보 프로세스 제어 블록≡ 속성들의 집합

• PCB ≡ 태스크제어블록≡프로세스 디스크립터(descriptor)

프로세스 이미지 ( i )

• 프로세스 이미지 (process image)

– 프로그램(code 또는 text): 실행 흐름 – 데이터데이터

– 스택

– PCB (Process Control Block)PCB (Process Control Block)

프로세스 식별

처리기 상태 정보

프로세스 기술 및 제어 27

프로세스 제어 정보

프로세스 제어 구조 ( 계속 )

3.3 프로세스 기술

(15)

프로세스 이미지

3.3 프로세스 기술 프로세스 제어구조

프로세스제어블록(PCB) 프로세스제어블록(PCB)

텍스트(코드, 명령어)

데이터(전역변수) 데이터(전역변수) 힙(동적 메모리 할당)( )

free area

스택(지역변수 매개변수) free area

프로세스 기술 및 제어 29

스택(지역변수,매개변수)

PCB

3.3 프로세스 기술 프로세스 제어구조

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

Control Block)

OS 에 의해 관리 다수의

다수의 프로세스를 프로세스를 지원하고 지원하고

•• 다수의 다수의 프로세스를 프로세스를 지원하고 지원하고 다중처리를

다중처리를 제공할 제공할 수 수 있게 있게 지원하는

지원하는 자 자 지원하는

지원하는 중요 중요 자료구조 자료구조

(16)

PCB ( 계속 )

3.3 프로세스 기술 프로세스 제어구조

PCB 의 구성 요소

• 프로세스 식별: 숫자로 된 식별자

• PID, PPID, UID, … – 처리기 상태 정보

U Vi ibl R i t 사용자가 이용 가능

• User-Visible Registers :사용자가 이용 가능

제어 및 상태 레지스터

Program counter, Condition codes, Status information

스택 포인터 – 프로세스 제어 정보

스케줄링 및 상태 정보스케줄링 및 상태 정보

Process state, Priority, Scheduling-related information, Event

다른 프로세스들 간의 포인터 정보 프로세스간 통신

프로세스간 통신

프로세스 권한

메모리 관리

프로세스 기술 및 제어 31

자원 소유권 및 이용률

PCB ( 계속 )

3.3 프로세스 기술 프로세스 제어구조

PCB의 일반적인 구성요소

(17)

PCB ( 계속 )

3.3 프로세스 기술 프로세스 제어구조

PCB의 일반적인 구성요소(계속)

프로세스 기술 및 제어 33

프로세스 속성

3.3 프로세스 기술 프로세스 제어구조

• 프로그램 상태 워드 (PSW)

– 예: Pentium II 상에서 EFLAGS 레지스터

(18)

3.3 프로세스 기술 프로세스 제어구조

프로세스 속성 ( 계속 )

• 가상 메모리에서 사용자 프로세스 (그림 3.13)

프로세스 기술 및 제어 35

3.3 프로세스 기술 프로세스 제어구조

프로세스 속성 ( 계속 )

• 프로세스 상태 큐 구조를 위한 리스트 구현

(19)

3.4 프로세스 제어

• 처리기 수행 모드

– 대부분의 처리기는 최소한 두 가지의 수행 모드를 제공

사용자 모드(user mode)

시스템 모드( t d t l d k l d )

시스템 모드(system mode, control mode, kernel mode)

– 사용자 프로그램의 간섭으로부터 운영체제를 보호할 목적

처리기 수행 모드 구분 구현

• 처리기 수행 모드 구분 구현

– PSW의 한 비트를 활용

커널 바뀌 경

– 커널 모드로 바뀌는 경우

사용자가 운영체제 서비스를 호출

인터럽트 발생으로ISR이 실행되어야 할 때

인터럽트 발생으로ISR이 실행되어야 할 때 – 사용자 모드로 바뀌는 경우

운영체제에서 사용자 프로세스로 복귀할 때

프로세스 기술 및 제어 37

운영체제에서 사용자 프로세스로 복귀할 때

프로세스 생성

3.4 프로세스 제어

• 유일한 프로세스 식별자 할당

• 프로세스의 주소공간 할당

– 사용자 주소공간 및 사용자 스택 – 공유 영역(shared area)

PCB 초기화

– PC, SP, 초기 상태, 우선순위, …

• 적절한 연결 설정 적절한 연결 설정

(20)

프로세스 교환 (Process Switching)

3.4 프로세스 제어

• 프로세스 교환을 유발하는 사건들

Cl k i t t 최대 허용된 시간단위(ti li )가 지나면 발생

– Clock interrupt: 최대 허용된 시간단위(time slice)가 지나면 발생

수행Æ준비

– I/O interruptI/O interrupt

블록Æ준비

– 메모리 폴트(페이지 부재)

수행Æ블록

– 트랩 (Trap)

수행 중에 발생한 오류 및 예외상황(exception)

해당 프로세스가 종료될 수도 있음Å복구 불가능한 상황 시스템 호출(수퍼바이저 호출 Supervisor call)

– 시스템 호출(수퍼바이저 호출, Supervisor call)

• file open 등

이 때 모드 전환 발생, 필요하면 프로세스 교환도 발생 함.

프로세스 기술 및 제어 39

프로세스 교환 순서

3.4 프로세스 제어 프로세스 교환

1. PC 및 모든 레지스터 등의 처리기 문맥을 저장

2 현재 수행 상태에 있는 프로세스(P )PCB를 갱신 2. 현재 수행 상태에 있는 프로세스(P

A

)PCB를 갱신

3. P

A

PCB 를 준비 큐 , 블록 큐 , 또는 준비 / 보류 큐 중의 하 나에 삽입

나에 삽입

4. 실행할 다른 프로세스(P

B

)를 선택

5. P

B

PCB를 갱신 Æ 실행 상태로 전이 6. 메모리 관리 자료구조를 갱신

7. P

B

PCB로부터 문맥을 복원(restore)

– context switch (문맥 교환)

• 모드 전환과 문맥 교환은 다른 의미임에 주의

– 모드 전환은 프로세스가 바뀌는 문맥 교환 없이도 발생할 수 있음

(21)

프로세스 교환 순서 ( 계속 )

3.4 프로세스 제어 프로세스 교환

프로세스 기술 및 제어 41

3.5 운영체제의 수행

OS 실행(execution) 방식

분리된 커널 – 분리된 커널

전통적인 커널 실행 방식

• OSOS 코드는 특권 모드드는 특권 모드(privileged mode)(privileged mode)에서 실행되는 독립적 개체에서 실행되는 독립적 개체

• Nonprocess Kernel

– 사용자 프로세스 내에서 실행

사용자 프로세스 문맥 내에OS 소프트웨어가 유지

프로세스가OS 코드를 실행 중일 때는 특권 모드를 가짐 프로세스 기반OS (P B d OS)

– 프로세스 기반OS (Process-Based OS)

(22)

OS 와 사용자 프로세스와의 관계

3.5 운영체제의 수행

프로세스 기술 및 제어 43

사용자 프로세스 내에서 OS 실행

3.5 운영체제의 수행

• 사용자 프로세스 문맥 내에 OS 소프 트웨어가 유지

트웨어가 유지

OS 코드 실행 시에는 별도의 커널 스

택을 사용함 택을 사용함

• 프로세스가 OS 코드를 실행 중일 때

는 특권 모드를 가짐

(23)

3.6 보안 이슈 (Security Issues)

• 핵심 고려 사항

– 시스템 상에서 공격자나 악성 소프트웨어가 비인가 특 권을 획득하는 것을 방어

– 특히 루트 (root) 권한 획득을 방어

• 시스템 접근 위협

• 시스템 접근 위협

– 침입자 (Intruders)

• 기만자(Masquerader, 가장한 자): 외부자

• 권리침해자(Misfeasor, 불법 행위자): 내부자

• 은밀한 사용자(Clandestine user): 외부자 또는 내부자

– 악성소프트웨어(Malicious software)

• malware: 멀웨어

프로세스 기술 및 제어 45

악성 소프트웨어 (Malicious software)

3.6 보안 이슈

Malware 라고도 함

• 유형

– 기생(Parasitic)형

• 다른 유틸리티 프로그램에 달라붙어 그들이 실행될 때 감염을 시도한다.

바이러스/l i b b/b kd

• 바이러스/logic bomb/backdoor

– 독립실행형

• Worm/bot형태

• Worm/bot형태

(24)

대응책

3.6 보안 이슈

• 침입탐지 시스템 (Intrusion detection systems)

– To detect human intruder and malicious software behaviour.

– 구성 방식 구성 방식

• 호스트 기반: 한 기계 내를 탐지

• 네트워크 기반:네트워크 기반: 한 서브네트워크 전체를 탐지한 서브네트워크 전체를 탐지

– 구성 요소

• Sensors:데이터 수집

• Sensors: 데이터 수집

• Analyzers: 센서로부터 수집된 데이터 분석

• User Interface:시스템의 행위를 제어

• User Interface: 시스템의 행위를 제어

프로세스 기술 및 제어 47

대응책 ( 계속 )

3.6 보안 이슈 대응책

• 인증 (Authentication)

– 두 단계로 구성

• Identification(식별) ifi i (검증)

• Verification(검증)

– 사용자 신원 인증의 일반적 수단

S thi th i di id lk

• Something the individual knows

패스워드, PIN, 미리 등록된 질문/답변

• Something the individualSomething the individual possessespossesses 키카드, 스마트카드, 열쇠

• Something the individual is (static biometrics) – Finger prints, Retina, Face

• Something the individual does (dynamic biometrics) V i / H d iti / T i h th R iti – Voice / Handwriting / Typing rhythm Recognition

(25)

대응책 ( 계속 )

3.6 보안 이슈 대응책

• 접근 제어 (access control)

자원에 접근하는 모든 것들은 감시 대상임 – 자원에 접근하는 모든 것들은 감시 대상임 – 접근 제어 관리자는 권한 데이터베이스를 구축

– 시스템 내 감사 기능은 사용자들이 커널에 접근하는 모든 행위에시스템 내 감사 기능은 사용자들이 커널에 접근하는 모든 행위에 대해 기록함.

• 방화벽 (firewall)

– 네트워크 외부의 컴퓨터들과 인터페이스를 담당하는 전용 컴퓨터 – 네트워크 안쪽의 민감한 파일들을 보호

– 방화벽의 설계 목적

내 외부를 오가는 모든 트래픽은 방화벽을 경유해야 함

내x외부를 오가는 모든 트래픽은 방화벽을 경유해야 함.

인가된 트래픽 만이 통과할 수 있다.

침투에 대한 면역성이 있어야 한다.침투에 대한 면역성이 있어야 한다.

프로세스 기술 및 제어 49

UNIX SVR4 의 프로세스 관리

• 모델: OS가 사용자 프로세스 환경 내에서 실행

– 9개의 프로세스 상태를 가짐

) pid 0: swapper ) pid 1: init

(26)

UNIX SVR4 의 프로세스 관리

• 프로세스 기술 (Process Description)

프로세스 기술 및 제어 51

UNIX SVR4 의 프로세스 관리

• 프로세스 테이블

(27)

UNIX SVR4 의 프로세스 관리

U 영역 (U area)

프로세스 기술 및 제어 53

UNIX SVR4 의 프로세스 관리

• 프로세스 제어

fork()fork()

프로세스 테이블에 한 슬롯(slot, 엔트리)를 할당

유일한 프로세스ID (PID)를 할당

유일한 프로세스ID (PID)를 할당

부모의 프로세스 이미지를 복사

부모가 소유하고 있는 모든 파일들의 참조계수(count)를 증가( )

자식 프로세스를 준비 상태로 설정

부모 프로세스에는 자식의PID를, 자식 프로세스에는0을 반환

(28)

요 약

• 프로세스 및 PCB 정의

• 프로세스 상태

– 2-상태 모델, 5-상태 모델, 7-상태 모델(보류상태 포함) ..

• 프로세스 기술

– 식별, 상태 정보, 제어 정보

• 프로세스 제어

– 모드 전환모드 전환 – 프로세스 교환

UNIX SVR4의 프로세스 관리

UNIX SVR4의 프로세스 관리

– 9-상태 모델

문맥(context): 사용자 문맥 레지스터 문맥 시스템 문맥

운영체제 기술 및 제어 55

– 문맥(context): 사용자 문맥, 레지스터 문맥, 시스템 문맥

Referensi

Dokumen terkait

Detection of shockable ventricular cardiac arrhythmias from ECG signals using FFREWT filter-bank and deep convolutional neural network.. Scikit-learn: Machine Learning

Conclusion of hypothesis test results hypothesis Path Coefficient P values Results Connection Use of Social Media- MSME Performance 0.579 0.000 supported Positive Significant Use