• 검색 결과가 없습니다.

서론

N/A
N/A
Protected

Academic year: 2021

Share "서론"

Copied!
57
0
0

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

전체 글

(1)

운영체제 (Operating Systems)

서론

(Introduction)

문양세

강원대학교 IT 대학 컴퓨터과학전공

(2)

강의 목표

컴퓨터 시스템의 기본 구성을 이해한다 . 운영체제의 주요 구성요소를 이해한다 .

서론 (Introduction)

(3)

강의 목차

운영체제 정의

컴퓨터 시스템 구성 컴퓨터 시스템 구조 운영체제 구조와 동작 프로세스와 메모리 관리 저장장치 관리

요약

서론 (Introduction)

(4)

운영체제란 무엇인가 ?

서론 (Introduction)

컴퓨터 하드웨어를 관리하는 시스템 프로그램이다 .

컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중재자 역할을 수행하는 시스템 프로그램이다 .

운영체제의 목적

사용자가 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공한다 .

 환경 관리 (environment management)

사용자 프로그램을 실행시켜 사용자 문제를 좀 더 쉽게 해결하고자 한다 .

 프로세스 관리 (process management)

컴퓨터 하드웨어를 효율적인 방법으로 사용하기 위함이다 .

 자원관리 (resource management), 자원의 예 : 스토리지 , 메모리

(5)

컴퓨터 시스템 구성

서론 (Introduction)

컴퓨터 시스템은 네 가지 컴포넌트로 나눌 수 있다 .

하드웨어 (hardware)

기본적 컴퓨팅 자원을 제공

중앙처리장치 (CPU), 메모리 (memory), 입출력 장치 (I/O devices)

운영체제 (operating system)

응용 프로그램들과 사용자들의 하드웨어 사용을 중재 (coordinate) 하고 제어 (control) 하는 역할 수행

응용 프로그램 (application programs)

사용자의 컴퓨팅 문제를 시스템 자원들을 사용하여 해결하는 프로그램

예제 : 워드 프로세서 , 컴파일러 , 웹 브라우저 , 비디오 게임 , 데이터베이스 시스템 (?)

사용자 (users)

(6)

컴퓨터 시스템의 네 가지 컴포넌트

서론 (Introduction)

(7)

운영체제의 정의 (1/2)

서론 (Introduction)

운영체제는 자원 할당자 (resource allocator) 이다 .

컴퓨터의 모든 자원을 관리한다 .

효율적이고 공정한 자원 사용을 위해 충돌하는 요구들에 대한 자원 할당을 결정한다 .

운영체제는 제어 프로그램 (control program) 이다 .

컴퓨터의 부적절한 사용과 에러를 방지하기 위해 프로그램 실행을 제어한다 .

(8)

운영체제의 정의 (2/2)

서론 (Introduction)

공통적으로 인정되는 정의는 없다 ! (No universally accepted defini- tion!)

가장 근접한 정의 :

내가 운영체제를 주문했을 때 , 운영체제 판매 회사가 가져오는 ( 전달해 오는 ) 모든 것

하지만 , 가져오는 ( 전달해 오는 ) 내용은 매우 다양하다 .

커널 , 시스템 프로그램 , 응용 프로그램

컴퓨터에서 항시 수행되는 하나의 프로그램”은 커널 (kernel)이다 .

그 이외 모든 것은 (1) 운영체제 시스템과 함께 전달된 시스템 프로그램 (system pro- gram) 이거나 , (2) 응용 프로그램 (application progam) 이다 .

(9)

강의 목차

운영체제 정의

컴퓨터 시스템 구성 컴퓨터 시스템 구조 운영체제 구조와 동작 프로세스와 메모리 관리 저장장치 관리

요약

서론 (Introduction)

(10)

컴퓨터 스타트업 (Computer Startup)

서론 (Introduction)

컴퓨터를 켰을 때 , 처음 로드되는 프로그램을 부트스트랩 프로그램 (bootstrap program) 이라 한다 .

부트스트랩 프로그램은

통상 ROM, EPROM 등의 펌웨어 (firmware) 에 저장된다 .

시스템의 모든 기능을 초기화 한다 .

운영체제 커널을 메모리에 로딩하고 실행을 시작한다 .

(11)

컴퓨터 시스템 조직 (Computer System Organiza-

tion)

서론 (Introduction)

컴퓨터 시스템 하드웨어와 동작

하나 이상의 CPU, 장치 제어기 (device controllers) 가 공유 메모리 (shared mem- ory) 에 접근하기 위해 공통 버스 (common bus)로 연결됨

CPU와 장치들은 메모리 사이클 (memory cycle) 을 얻기 위해 경쟁하면서 동시에 수행 됨 (concurrent execution)

(12)

컴퓨터 시스템 동작 (Computer System Operation)

서론 (Introduction)

입출력 장치 (I/O device) 와 CPU 는 동시에 수행 가능하다 .

각 장치 제어기 (device controller) 는 장치 유형 (device type) 에 따라 특정 작업을 전담한다 .

각 장치 제어기는 자신의 로컬 버퍼 (local buffer) 를 가진다 .

CPU 는 메인 메모리와 로컬 버퍼 사이의 데이터 운반을 담당한다 .

입출력 (I/O) 이란 장치로부터 장치 제어기의 로컬 버퍼로 데이터를 전송 하는 것을 의미한다 .

장치 제어기는 자신의 연산이 종료되었음을 인터럽트 (interrupt) 를 사

용하여 CPU 에게 알린다 .

(13)

인터럽트 (Interrupts)

서론 (Introduction)

하드웨어 혹은 소프트웨어에 의한 인터럽트 발생

하드웨어는 어느 때고 CPU 에 신호를 보내어 인터럽트를 발생시킬 수 있다 .

소프트웨어는 시스템 호출 (system calls) 에 의한 특정 연산을 실행 시킴으로서 인터럽 트를 발생시킬 수 있다 .

CPU 가 인터럽트 되면 ,

(1) CPU 는 하고 있던 일을 멈춘다 .

(2) 즉시 정해진 위치 ( 주소 , address) 로 실행을 옮긴다 .

( 정해진 위치란 보통 인터럽트를 위한 서비스 작업이 위치한 시작 주소를 의미한다 .) (3) 인터럽트 서비스 루틴 (interrupt service routine) 을 수행한다 .

(4) 인터럽트 작업이 끝나면 중단되었던 이전 작업이 재개된다 .

(14)

인터럽트의 일반적 기능 (Common Functions) (1/2)

서론 (Introduction)

인터럽트는 인터럽트 벡터 (interrupt vector) 를 통해 제어 (control) 을 인터럽트 서비스 루틴에 넘긴다 .

인터럽트 벡터란 인터럽트 서비스 루틴들에 대한 주소들을 가진 벡터이다 .

인터럽트로 인해 제어가 넘어가기 전 , 인터럽트된 ( 인터럽트를 받아 멈춘 )

명령어 (instruction) 의 주소를 저장한다 .

프로그램 카운터 (program counter) 와 레지스터 (register) 를 저장한다 .

그 이유는 인터럽트 서비스 루틴이 끝난 후에

다시 해당 명령어 수행으로 복귀해야 하기 때문이다 .

(15)

인터럽트의 일반적 기능 (Common Functions) (2/2)

서론 (Introduction)

인터럽트 처리 중에 다른 인터럽트는 허용되지 않는데 (disabled), 이는 인터럽트 손실 (interrupt lost) 을 막기 위함이다 .

트랩 (trap) 은 에러나 사용자 요구에 의해 소프트웨어적으로 발생한 인 터럽트를 일컫는다 .

운영체제는 인터럽트 기반 (interrupt driven) 으로 동작한다 .

(16)

인터럽트 서비스 루틴 (Interrupt Service Routine)

서론 (Introduction)

각 컴퓨터는 자신만의 인터럽트 처리 메커니즘을 가지나 , 몇 가지 기능은 일반적으로 동일하다 .

대개 인터럽트 서비스 루틴은 일반 루틴 (generic routine) 과 인터럽트 핸들러 (interrupt handler) 로 구성된다 .

일반 루틴은 인터럽트 정보 점검 등을 위해 먼저 호출된다 .

그 이후 각 인터럽트에 따라 그에 맞는 처리를 위한 인터럽트 - 특화 핸들러 (interript- specific handler)가 호출된다 .

인터럽트는 가능한 빨리 처리되어야 한다 .

정해진 일정 수의 인터럽트 처리만 지원한다 .

인터럽트 핸들러를 가리키는 포인터 테이블이 사용된다 .

 인터럽트 벡터 테이블 (interrupt vector table)

테이블 포인터는 일반적으로 하위 메모리 (low memory) 영역에 정렬되어 저장된다 .

(17)

인터럽트 시간 일정 (Interrupt Timeline)

서론 (Introduction)

장치  로컬버퍼

로컬버퍼  메모리

인터럽트 발생

(18)

입출력 구조 (I/O Structure) (1/2)

서론 (Introduction)

입출력 (I/O) 이란 ?

장치와 메모리 / 로컬 버퍼 사이의 데이터 전송

장치 종류 : 키보드 , 모니터 , 마우스 , 디스크 등

장치 제어기 (Device Controller)

( 장치에 존재함 )

공통 버스 (common bus)에 연결되며 , 하나 이상의 장치가 장치 제어기에 연결된다 .

로컬 버퍼 저장소와 특정 목적 레지스터들을 관리한다 .

주변 장치와 각 장치의 로컬 버퍼 저장소 사이의 데이터 전송을 담당한다 .

장치 드라이버 (Device Driver)

( 운영체제에 존재함 )

운영체제는 각 장치 제어기를 위한 장치 드라이버를 가진다 .

운영체제의 장치 드라이버는 장치 제어기의 동작을 이해하고 연동한다 .

(19)

입출력 구조 (I/O Structure) (2/2)

서론 (Introduction)

입출력 연산을 시작하기 위해

장치 드라이버는 장치 제어기 내의 적절한 레지스터에 필요한 값을 적재 (load) 한다 . ( 장치 드라이버가 장치 제어기에 명령을 내리는 조치로 이해할 수 있다 .)

장치 제어기는 취할 동작을 조사하기 위해 레지스터의 내용을 조사한다 .

장치 제어기는 장치와 장치의 로컬 버퍼 사이에 데이터 전송을 시작한다 .

전송이 끝나면 , 장치 제어기는 인터럽트를 발생시켜 로컬 버퍼로의 데이터 전송이 끝났 음을 운영체제 ( 장치 드라이버 ) 에게 알린다 .

장치 드라이버는 제어를 운영체제로 복귀시킨다 .

운영체제는 장치의 로컬 버퍼에 있는 내용을 메모리로 읽기 시작한다 .

(20)

직접 메모리 접근 (Direct Memory Access: DMA)

서론 (Introduction)

고속의 입출력 장치에 사용된다 .

메모리 액세스 속도에 근접한 빠른 데이터 전송이 가능하다 .

장치 제어기는 CPU 간섭 없이 로컬 버퍼로부터 메인 메모리로 많은 양 의 데이터 블록들을 직접 전송한다 .

매번 인터럽트를 발생시키는 것이 아니라 , 한번의 인터럽트에 많은 양의 데이터를 (CPU가 아닌 ) 장치 제어기가 직접 전송한다 .

DMA 가 일어나는 시간 동안에 CPU 는 다른 작업을 수행할 수 있다 .

DMA 의 인터럽트는 바이트 단위가 아니라 블록 단위로 발생한다 .

바이트 단위 전송이 아니라 블록 단위 전송이기 때문에 성능이 향상된다 .

키보드가 바이트 단위 , 디스크가 블록 단위의 대표적인 예이다 .

(21)

저장소 구조 (Storage Structure)

서론 (Introduction)

메인 메모리 (main memory) :

CPU 가 직접적으로 접근할 수 있는 유일한 대규모 저장 매치 (storage media)

2 차 저장소 (secondary memory) :

메인 메모리의 확장 저장소로 , 대규모 비휘발성 저장 용량을 제공함 ( 대표적 예가 자기 디스크임 )

자기 디스크 (magnetic disks) :

자기 기록 물질로 덮여진 단단한 금속 혹은 유리 플래터 (platter)

디스크 표면은 논리적으로 트랙과 섹터로 세분화 되어 있다 .

디스크 제어기 (disk controller) 는 디스크와 컴퓨터 ( 운영체제 ) 사이의 논리적인 상호 작용을 결정한다 .

(22)

저장소 계층 (Storage Hierarchy)

서론 (Introduction)

저장 시스템 (storage system) 은 계층적 구조를 가진다 .

속도 (speed)

가격 (cost)

휘발성 (volatility)

캐싱 (caching)

정보를 보다 빠른 저장 장치에 복사해 두는 기법이다 .

메인 메모리는 2 차 저장소 ( 디스크 ) 에 대한 캐시라 볼 수 있다 .

(23)

저장 장치 계층 (Storage Device Hierarchy)

서론 (Introduction)

비싸고 (Expensive) 빠르고 (Fast) 소규모 (Small) 휘발성 (Volatile)

저렴 (Inexpensive ) 느리고 (Slow) 대용량 (Large) 비휘발성 (Non-volatile)

(24)

캐싱 (Caching)

서론 (Introduction)

중요 원칙 : 컴퓨터 내부의 많은 계층에서 캐싱이 수행된다 . ( 하드웨어 , 운영체제 , 소프트웨어 )

( 자주 ) 사용되는 정보는 임시적으로 느린 저장소에서 빠른 저장소로 복 사되어 유지된다 .

정보가 이미 캐싱되어 있는지 빠른 저장소를 먼저 점검 (check) 한다 .

캐싱되어 있으면 , 빠른 저장소로부터 직접 사용한다 .

그렇지 않으면 , 정보 ( 데이터 ) 는 느린 저장소에서 빠른 저장소로 복사한 후 사용된다 .

일반적으로 캐시는 캐시되는 저장소 ( 느린 저장소 ) 보다 용량이 작다 .

캐시 관리 (cache management) 는 중요한 설계 문제이다 .

고려 사항 : 캐시 크기 , 교체 정책 (replacement policy)

(25)

저장소 계층에 따른 성능

서론 (Introduction)

(26)

현대 컴퓨터 시스템의 동작

서론 (Introduction)

(27)

강의 목차

운영체제 정의

컴퓨터 시스템 구성 컴퓨터 시스템 구조 운영체제 구조와 동작 프로세스와 메모리 관리 저장장치 관리

요약

서론 (Introduction)

(28)

싱글 프로세서 (single-processor) 시스템

서론 (Introduction)

하나의 CPU 로 구성된 시스템

싱글 프로세서 시스템은 PDA 에서 메인 프레임까지 폭넓게 사용됨

CPU 는 하나이나 , 그래픽 프로세서 , 디스크 컨트롤러 등 다양한 특수

목적 프로세서들 (special purpose processors) 과 함께 시스템을 구성

(29)

멀티 프로세서 (multi-processor) 시스템

서론 (Introduction)

근접하여 통신하는 두 개 이상의 CPU 로 구성된 시스템 컴퓨터 버스 , 클럭 , 메모리 , 주변 장치 등을 공유함

병렬 시스템 (parallel system), 밀결합 시스템 (tightly-coupled sys- tem) 이라 불리기도 함

주요 장점

처리율 (throughput) 증가: 적은 시간에 더 많은 일을 처리할 수 있다 .

규모의 경제 (economy of scale): 동일한 수의 여러 싱글 프로세서 시스템들을 구성하 는 것 보다 비용이 저렴하다 .

신뢰성 (reliability) 증가 : 하나의 프로세서에 이상이 생겨도 시스템이 느려질 뿐 시스 템 자체가 멈추지는 않는다 . ( 정말 그럴까요 ?, fault-tolerant system)

주요 단점

복잡성 (complexity) 증가 : 한 개 프로세서로 구성된 시스템보다 하드웨어적 , 소프트 웨어적으로 매우 복잡하다 .

(30)

서론 (Introduction)

비대칭 (asymmetric) 멀티 프로세싱

프로세서들간에 매스터 - 슬레이브 (master-slave) 관계가 있다 .

매스터 프로세서가 슬레이브 프로세서에 작업을 할당하고 관리한다 .

대칭 멀티 프로세싱 (symmetric multi-processing: SMP)

주종 관계가 없이 , 모든 프로세서들이 동일한 피어 (peer) 로 동작한다 .

각 프로세서는 다른 프로세서의 간섭 없이 각자 자신의 작업을 수행한다 .

오늘날 멀티 프로세서 시스템은 대부분 SMP 구조를 채택하고 있다 .

Windows, Solaris, Linux 등 현대의 운영체제는 대부분 SMP 구조를 지원한다 .

멀티 프로세서 시스템의 유형

(31)

서론 (Introduction)

비대칭 vs 대칭 멀티 프로세싱

(32)

SMP 구조 (SMP Architecture)

서론 (Introduction)

(33)

멀티 코어 프로세서 (Multi-Core Processor)

서론 (Introduction)

하나의 칩 (chip) 에 여러 개의 CPU 코어 (core) 를 포함시키는 구조임

근본적으로는 멀티 프로세서 시스템으로 이해할 수 있다 .

CPU 칩 간의 통신보다는 칩 내 코어 간의 통신이 훨씬 빠르다 .

 하나의 코어를 가진 복수 칩 구조보다 여러 코어를 가진 단일 칩 구조가 효율적임

다중 코어 칩이 복수의 단일 코어 칩들 보다 전력소모도 적다 .

다중 코어 칩은 데이터베이스 , 웹 서버와 같은 ( 동일 / 유사한 작업을 동시에 많이 처리 하는 ) 서버 시스템 구조에 적합하다 .

(34)

클러스터 시스템 (Cluster System)

서론 (Introduction)

( 여러 프로세서가 아닌 ) 여러 시스템들이 함께 동작하는 구조이다 .

통상 SAN(storage area network) 을 통하여 스토리지 ( 디스크 , RAID) 를 공유한다 .

고장 (failure) 에 대한 고가용 (high availability) 서비스를 제공한다 .

비대칭 클러스터링 (asymmetric clustering): active-standby 로 동작하는 구조

대칭 클러스터링 (symmetric clustering): active-active 로 동작하는 구조

클러스터 시스템의 한 형태로 HPC(High Performance Computing) 구조가 있다 .

HPC 를 위해서는 프로그램 자체가 병렬화 (parallelization) 를 고려하여 작성되어야 한 다 .

HPC 중 성능이 우수한 것은 일반적으로 슈퍼컴퓨터로 분류하기도 한다 .

(35)

클러스터 시스템의 구조

서론 (Introduction)

(36)

하둡 클러스터 (Hadoop Cluster)

서론 (Introduction)

(37)

강의 목차

운영체제 정의

컴퓨터 시스템 구성 컴퓨터 시스템 구조 운영체제 구조와 동작 프로세스와 메모리 관리 저장장치 관리

요약

서론 (Introduction)

(38)

운영체제 구조 (1/2)

서론 (Introduction)

운영체제의 가장 중요한 측면은 효율성을 위한 멀티프로그래밍 / 다중프 로그래밍 (multiprogramming) 능력이다 .

한 사용자 ( 한 응용 프로그램 ) 가 CPU 와 I/O 장치를 항시 바쁘게 쓸 수는 없다 . 즉 , 한 사용자가 CPU, I/O 장치를 독점하는 것은 효율적이지 않다 .

멀티프로그래밍은 CPU 가 가급적 많은 작업을 처리할 수 있도록 , 여러 개의 작업 ( 코드 + 데이터 ) 으로 구성된다 .

전체 작업 중의 일부가 시스템 내 메모리에 상주한다 .

여러 작업 중 스케쥴러 (scheduler) 에 의해 하나의 작업이 선정되어 수행된다 .

수행중인 작업이 입출력 대기 등으로 중단되어야 한다면 , 운영체제는 다른 작업이 수행되도록 스케쥴링한다 .

(39)

운영체제 구조 (2/2)

서론 (Introduction)

시분할 (timesharing) 혹은 멀티태스킹 (multitasking) 기능

운영체제가 여러 작업들에 CPU 를 자주 전환 (switch) 하여 배정함으로써 , 작업들이 골 고루 진행되도록 하는 목적이 있다 .

사용자 ( 응용 프로그램 ) 가 여럿이더라도 혼자서 컴퓨터 시스템을 사용하는 듯한 상호작 용 컴퓨팅 (interactive computing) 을 제공한다 .

상호작용 컴퓨팅에서는 일반적으로 반응시간 (response time) 이 1 초 미만이어야 한 다 .

각 사용자는 메모리에서 수행되는 프로그램이 적어도 하나 있어야 하는데 , 프로그램의 실행을 프로세스 (process) 라 한다 .

여러 작업이 동시에 수행될 준비가 되어 있다면 CPU 스케쥴링이 동작한다 .

프로세스들 모두가 메모리에 올라올 수 없다면 스와핑 (swapping) 이 필요하다 . ( 스와핑은 프로세스들이 메모리로 올라오고 내려가는 과정을 의미한다 .)

가상 메모리 (virtual memory) 개념에 의해 실제 메모리를 초과하는 프로세스들의 실

(40)

운영체제 동작 (Operating System Operations)

(1/2)

서론 (Introduction)

현대 운영체제는 하드웨어에 의한 인터럽트 기반 (interrupt driven) 방 식으로 동작한다 .

소프트웨어 에러나 요청 (system call) 은 예외 (exception) 나 트랩 (trap) 을 발생시킨다 .

오류 예제 : 0 으로 나누기 , 유효하지 않은 메모리 접근

멀티프로그래밍 환경에서의 문제점

특정 프로세스가 무한루프에 빠질 수 있다 .  시스템 전체가 중단되어야 하나 ?

특정 프로세스가 운영체제 혹은 다른 프로세스를 수정하려 한다 .  어떻게 막지 ?

 해답은 이중 모드 (dual-mode) 연산

(41)

운영체제 동작 (Operating System Operations)

(2/2)

서론 (Introduction)

이중 모드 (dual-mode) 란 ? 사용자와 커널 모드를 분리하여 운영

사용자 모드 (user mode) : 사용자 프로그램이 동작하는 모드

커널 모드 (kernel mode): 감독자 (supervisor) 모드 , 시스템 모드 , 특권 (privileged) 모드라고도 불리며 운영체제가 동작하는 모드

하드웨어에서 제공되는 모드 비트 (mode bit) 로 구분한다 .

모드 비트는 시스템이 사용자 코드 (mode bit = 1) 를 수행하는지 커널 코드 (mode bit

= 0) 를 수행하는지를 구분하는 역할을 한다 .

인터럽트 , 트랩 , 시스템 호출 등에 의해 사용자 모드에서 커널 모드로 전환이 발생한 다 .

몇몇 명령어 (instruction) 는 커널 모드에서만 실행되도록 특권 (privileged) 을 가지도 록

지정되어 있다 .

시스템 호출 (system call)은 모드를 커널로 바꾸었다가 , 호출로부터 리턴되면 다시 사

(42)

사용자에서 커널 모드로의 전환

서론 (Introduction)

시스템 부팅 시 , 하드웨어는 커널 모드로 동작한다 .

운영체제가 적재된 후 , 응용 프로그램들이 사용자 모드에서 동작한다 . 인터럽트나 트랩이 발생하면 , 하드웨어는 사용자 모드에서 커널 모드로 전환된다 . ( 모드 비트 : 1  0)

커널 모드에서 제어권을 획득한 운영체제가 작업을 수행한다 .

커널 모드 작업이 끝나면 모드 비트를 변경 (0  1) 로 하고 사용자 모드

로 전환한다 .

(43)

타이머 (Timer) 에 의한 모드 전환

서론 (Introduction)

타이머는 특정 프로그램이 자원을 독점하거나 무한 루프 (infinite loop) 에 빠지는 상황을 방지한다 .

타이머의 동작 과정

( 특정 기간 후에 인터럽트가 발생하도록 ) 타이머의 카운트를 설정한다 .

운영체제는 타이머의 카운트를 감소시킨다 .

카운터가 0 이되면 인터럽트를 발생시킨다 .

제어를 회수하거나 문제가 된 프로그램을 종료할 수 있다 .

(44)

강의 목차

운영체제 정의

컴퓨터 시스템 구성 컴퓨터 시스템 구조 운영체제 구조와 동작 프로세스와 메모리 관리 저장장치 관리

요약

서론 (Introduction)

(45)

프로세스 관리 (Process Management) (1/2)

서론 (Introduction)

프로세스는 실행중인 프로그램이다 .

프로세스는 시스템 내 작업 단위 (a unit of work) 이다 .

프로그램은 디스크에 존재하는 수동적 (passive) 객체인 반면 , 프로세스는 메모리에서 동작하는 능동적 (active) 객체이다 .

프로세스는 작업 수행을 위해 자원 (resource) 을 필요로 한다 .

CPU, 메모리 , 입출력 , 파일

초기화 데이터 (initialized data)

프로세스가 종료되면 재사용 가능 자원을 반환 (release) 해야 한다 .

(46)

프로세스 관리 (Process Management) (2/2)

서론 (Introduction)

단일 스레드 프로세스 (single threaded process) 는 ( 다음 명령어가 실행될 위치를 가리키는 ) 하나의 프로그램 카운터를 가진다 .

프로세스는 명령어들을 한번에 하나씩 순차적으로 (sequentially) 수행한다 .

멀티 스레드 프로세스 (multi-threaded process) 는 각 스레드마다 하 나의 프로그램 카운터를 가진다 .

각 스레드는 자신의 프로그램 카운터에 따라 명령어를 순차적으로 수행한다 .

전형적으로 , 시스템은 하나 이상의 CPU 에서 동시에 수행되는 많은 프 로세스와 여러 사용자 , 여러 운영체제를 가진다 .

프로세스와 스레드 사이에서 CPU 를 멀티플렉싱함으로써 동시성을 증가시킨다 .

(47)

프로세스 관리 활동 (Process Management Activi-

ties)

서론 (Introduction)

프로세스 관리와 관련하여 운영체제는 다음 기능의 수행을 책임진다 .

사용자와 시스템 프로세스를 생성 , 삭제할 수 있다 .

프로세스를 중지 (suspend) 했다가 재개 (resume) 할 수 있다 .

프로세스 동기화 (process synchronization) 를 제공하는 메커니즘이 있다 .

프로세스간 통신 (process communication) 을 위한 메커니즘이 있다 .

교착상태 처리 (deadlock handling) 를 위한 메커니즘이 있다 .

(48)

메모리 관리 (Memory Management)

서론 (Introduction)

처리하기 전후의 모든 데이터는 메모리에 있어야 한다 . 명령어가 실행되기 위해서는 메모리에 있어야 한다 .

메모리 관리는 언제 , 무엇이 메모리에 있어야 하는지를 결정한다 .

CPU 사용률과 사용자에 대한 컴퓨터 반응 시간에 대한 최적화가 이루어져야 한다 .

메모리 관리 동작 (memory management activities)

현재 메모리의 어느 부분이 누구에 의해 사용되는지 파악해야 한다 .

어떤 프로세스들의 데이터를 메모리 밖으로 옮기고, 반대로 메모리 내로 새롭게 옮길지 를 결정한다 .

필요에 따라 메모리 공간 (memory space) 을 할당 (allocate) 하고 회수 (deallocate) 한다 .

(49)

강의 목차

운영체제 정의

컴퓨터 시스템 구성 컴퓨터 시스템 구조 운영체제 구조와 동작 프로세스와 메모리 관리 저장장치 관리

요약

서론 (Introduction)

(50)

저장소 관리 (Storage Management) (1/2)

서론 (Introduction)

운영체제는 정보 저장소에 대한 공통적인 논리적 뷰 (common, logical view) 를 제공하는데 , 이를 파일 (file) 이라 한다 .

저장매체의 물리적 특성은 논리적 저장 단위인 파일로 추상화된다 .

각 저장매체 (storage medium) 는 장치 (device) 에 의해 제어된다 . ( 예제 : 디스크 드라이브 , USB 드라이브 , 테이프 드라이브 )

저장매체의 특성 : 접근 속도 , 용량 , 데이터 전송률 , 접속 방법 (sequential or ran- dom)

(51)

저장소 관리 (Storage Management) (2/2)

서론 (Introduction)

파일 시스템 관리 (file system management)

파일은 보통 디렉토리에 조직 (organize) 된다 .

접근 제어 (access control) 는 누가 어떤 파일에 접근할 수 있는지를 결정한다 .

운영체제가 제공하는 파일 관련 동작 (activities)

파일과 디렉토리 생성 , 삭제

파일과 디렉토리를 조작할 수 있는 기본 명령어 (primitives)

파일을 2 차 저장소에 매핑 (mapping)

파일을 안정적인 ( 비휘발성인 ) 저장매체에 백업 (backup)

(52)

대용량 저장소 관리 (Mass-Storage Management)

(1/2)

서론 (Introduction)

디스크는 메인 메모리를 초과하는 데이터나 오랜 기간 보관되어야 하는 데이터를 저장하는데 사용된다 .  2 차 저장소 (secondary storage) 대용량 저장소 ( 예 : 디스크 ) 의 적절한 관리는 매우 중요하다 .

컴퓨터 연산의 전체 속도가 전적으로 디스크 서브시스템 (disk subsystem) 과 관련 알 고리즘 (its algorithms) 에 달려있기 때문이다 .

대용량 저장소 관련 운영체제 동작 (activities)

자유 공간 관리 (free space management)

저장소 할당 (storage allocation)

디스크 스케쥴링 (disk scheduling)

(53)

대용량 저장소 관리 (Mass-Storage Management)

(2/2)

서론 (Introduction)

3 차 저장소 (Tertiary Storage)

( 빠르면 좋겠지만 목적이 속도가 아니라 백업이므로 ) 굳이 빠를 필요는 없다 .

광 디스크 (CD, DVD), 자기 테이프 (magnetic tape) 등이 있다 .

3 차 저장소 또한 관리되어야 한다 . (2 차 저장소는 3 차 저장소의 캐시로 볼 수 있다 .)

최근 , WORM(write-once, read-many-times), RW(read-write) 등 다양한 3 차 저장 소가 사용되고 있다 .

(54)

입출력 서브시스템 (I/O Subsystem)

서론 (Introduction)

운영체제의 목적 중 하나는 사용자에게 하드웨어 장치의 특징을 숨기는 것이다 . ( 즉 , 사용자가 하드웨어를 잘 몰라도 되게 하는 것이다 .)

운영체제의 I/O 서브시스템은 다음을 책임진다 .

입출력에서의 메모리 관리는

버퍼링 (buffering): 전송되는 동안 임시적으로 데이터를 저장하는 것

캐싱 (caching): 성능을 위해 데이터 일부분을 빠른 저장장치에 저장하는 것

스풀링 (spooling): 어떤 작업의 출력과 다른 작업의 입력이 겹치는 것 의 기능을 제공한다 .

일반적 장치 드라이버 (generic device driver) 인터페이스를 제공한다 .

특정 하드웨어 장치에 대한 드라이버를 제공한다 .

(55)

강의 목차

운영체제 정의

컴퓨터 시스템 구성 컴퓨터 시스템 구조 운영체제 구조와 동작 프로세스와 메모리 관리 저장장치 관리

요약

서론 (Introduction)

(56)

요약 (1/2)

서론 (Introduction)

운영체제의 세 가지 주요 목적

환경 관리 , 프로세스 관리 , 자원 관리

컴퓨터 시스템의 네 가지 컴포넌트

하드웨어 , 운영체제 , 응용 프로그램 , 사용자

운영체제는 인터럽트 기반 (interrupt drive) 방식이다 .

인터럽트는 하드웨어 , 소프트웨어에서 운영체제에 보내는 요청 신호이다 .

인터럽트는 인터럽트 서비스 루틴에 제어를 넘긴다 .

입출력은 장치와 로컬 버퍼 사이의 데이터 전송이다 .

장치 제어기와 장치 드라이버가 포함된다 .

(57)

요약 (2/2)

서론 (Introduction)

컴퓨터 시스템은 계층적 저장소 구조를 가진다 .

레지스터 , 캐시 , 메모리 , 2 차 저장소 , 3 차 저장소

운영체제는 상호작용 컴퓨팅을 가능하게 하는 멀티태스킹 환경을 제공한 다 .

시분할 (time sharing) 개념을 사용하여 CPU 자원을 공유한다 .

이중 모드 (dual-mode) 연산은 특정 프로세스에 의해 컴퓨터 시스템이 독점되는 현상을 방지한다 .

사용자 모드 , 커널 모드

참조

관련 문서

사고 데이터베이스를 활용한 Risk Index 평가를 통해 안전 관리 시스템 상 각 구성 요소에 대한 가중치를 계산 하게 된다.

프로세스 유형 분류 접근법 유형 1 접근법 유형 2 일반적 프로세스 관리 Process management - 독립된 하나의 프로세스Single process 구성 후 관리 - 전체적 차원에서 시스템 관리 조직의 양면성 Ambidexterity - 이원적으로 조직을 분리하여 독 립된 조직 구성 후 혁신을 추구 하는

제안 과제의 내용을 충분히 전달할 수 있도록 개발 내용 및 구체적으로 기술하되 시스템 구성 구조 등은 개략도 혹은

여기서 Shmoo 검사란 반도체 생산 업체에 서 양산 시 MCU의 동작 전압 범위를 최소 0.1V 단위로 세분화 하여 MCU의 동작 영역이외의 전 압까지 변화시키며 MCU의 동작 여부를

본 논문에서는 제품 구조 및 구성 관리시스템에 이용하기 위해서, 또한 부품과 관련된 정보를 효율적으로 관리, 활용하고 데이터들간 의 정보 교환을 용이하게 하기 위해 XML을

프로세서와 메모리 시스템 사이의 속도 차이를 완화하기 위하여 오늘날의 컴퓨터 시스템은 대부분 캐시 시스템 을 사용하고 있다. 하지만 소비 전력 측면에서 캐시

명령어를 위한 새로운 구조의 플래시 메모리 시스템을 설계 하기 위하여 기존 플래시 메모리에 다양한 구조의 버퍼 구조 와 버퍼 크기 그리고 페칭 크기를 이용하여

본 장에서는 사용자 선호 스팸 메일 대응 시스템 구조와 메일에 대한 사용자 반응이 사용자 그룹별로 다른 분포를 가진다는 사실을 보임으로써 본 논문의 연구동기가