• 검색 결과가 없습니다.

 2장 운영체제 소개

N/A
N/A
Protected

Academic year: 2022

Share " 2장 운영체제 소개 "

Copied!
25
0
0

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

전체 글

(1)

운영체제 강의노트

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

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

 저자 : 구현회

(2)

 2장 운영체제 소개

(3)

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

• 조정자

• 다른 프로그램이 작업할 수 있는 환경만 제공할 뿐 직접 일을 하 지는 못하는 조정자 역할 수행

• 자원 할당자 또는 관리자

• 각 응용 프로그램이 필요로 하는 자원을 할당해주는 자원 할당자 역할 수행

• 자원이란?

• 사용자가 실행하고자 하는 프로그램이 필요로 하는 모든 것

• 프로세서, 메모리, 입출력장치, 데이터, 채널 등

• 각 응용 프로그램이 동일한 자원을 요구하여 충돌이 발생하는 경 우, 충돌을 해결하고, 컴퓨터 시스템을 효율적으로 운영하도록 하 는 관리자 역할 수행

• 입출력장치와 사용자 프로그램 제어

• 하드웨어와 사용자 간의 인터페이스를 제공하고, 다수의 사용자 들에게 시스템 자원을 공유하게 하고, 자원을 스케줄링하고, 오류 를 처리하며, 입출력 보조 역할을 수행

운영체제의 역할

(4)

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

• 사용자에게 편리한 사용 환경 제공

• CUI(Character User Interface)에서 GUI(Graphic User Interface)로 바뀐 것이 가장 대표적인 사례

• 시스템 성능 향상

• 서버의 자원을 활용하려고 하는 클라이언트가 많기 때문에 시스 템 관리를 잘못하면 시스템 성능이 하락함

• 다음과 같은 몇 가지 요소에 의해 시스템 성능이 결정됨

•처리 능력 : 시스템 생산성을 말하는 것으로 단위 시간당 처 리되는 작업량을 의미

•신뢰도: 하드웨어 또는 소프트웨어가 실패없이 처리되는 능 력

• 응답 시간 : 프로그램 실행 명령이 내려지고 결과가 생성되 기 시작할 때까지의 시간

• 사용 가능도 : 가동률이라고도 하며, 일정시간 동안 시스템 이 가동된 시간

운영체제의 목적

(5)

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

• 운영체제는 1950년대 초에 들어서 등장

• 1950년대 이전에 개발된 ENIAC, EDSAC 등은 운영체제가 없이 운영자가 콘솔에서 모든 명령을 스위치로 동작함으로써 기능 수행

• 단일 스트림 배치처리 시스템(single stream batch processing system)

• 어셈블러 로딩 – 어셈블리 프로그램 로딩 – 실행 파일 생성 – 프 로그램 실행 – 어셈블러 제거 - 포트란 컴파일러 로딩 – 포트란 프 로그램 로딩 – 컴파일 및 실행 파일 생성 – 프로그램 실행 – 포트 란 컴파일러 제거 - 어셈블러 로딩 – 어셈블리 프로그램 로딩 – 실 행 파일 생성 – 프로그램 실행 – 어셈블러 제거

• 배치처리 시스템

• 어셈블러 로딩 – 모든 어셈블리 프로그램 로딩 – 실행 파일 생성 – 프로그램 실행 – 어셈블러 제거 - 포트란 컴파일러 로딩 – 모든 포트란 프로그램 로딩 – 컴파일 및 실행 파일 생성 – 프로그램 실 행 – 포트란 컴파일러 제거

운영체제 기능의 발전

(6)

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

• 버퍼링(buffering)

• 일반적으로 입출력장치는 주기억장치보다 속도가 느림

• 입출력해야 할 데이터를 메인 메모리에 둔 상태에서 프로세서가 이들 데이터를 제어하면 주기억장치의 속도와 입출력장치의 속도 차이 때문에 시스템 성능이 하락함

• 주기억장치의 일정 영역을 버퍼로 지정하고 입출력 데이터를 버퍼 에 둔 상태에서 입출력 기능만 별도로 수행하는 입출력 채널이 입출 력을 수행함으로써 시스템 성능 향상

CPU

OS

출력데이터

버퍼

주기억장치

I/O Channel

(7)

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

CPU

디스크

• 스풀링(spooling)

• 버퍼링은 주기억장치와 입출력장치의 속도 차이를 줄여서 시스템 성능을 향상시킬 수 있는 좋은 방법이긴 하나 주기억장치의 일부를 버퍼로 사용하기 때문에 주기억장치의 낭비를 초래할 수 있음

• 스풀링(Simultaneous Peripheral Operation On Line)은 주기억장 치보다 용량이 큰 디스크를 버퍼로 사용함으로써 주기억장치의 낭 비를 줄이면서 시스템 성능을 향상시키는 방법임

• 단, 속도는 버퍼링보다 약간 늦음

(8)

2. 운영체제의 유형별 특징

• 다중 프로그래밍시스템(multi programming system)이란?

• 주기억장치에 적재된 프로그램이 1개밖에 없다면 그 프로그램을 실행하던 중 입출력 명령이 발생하면 CPU는 더 이상 할일이 없어 지고 유휴 상태(idle state)에 빠지게 됨

• CPU가 유휴 상태에 들어가게 되면 시스템 효율이 하락함

• 다중 프로그래밍시스템이란 이러한 상황을 막기 위해 주기억장 치에 2개 이상의 프로그램을 적재하고, 특정 프로그램을 실행하던 중 입출력 작업이 발생했을 때, 다른 프로그램으로 실행을 옮김으 로써 CPU 유휴시간을 극소화하는 운영체제 유형

• 다중 프로그래밍시스템의 특징

• 주기억장치에 동시에 적재된 프로그램의 수를 다중 프로그래밍 의 정도(DMP : Degree of Multi Programming)라고 하는데 DMP 는 어느 정도는 큰 것이 좋지만 너무 크면 지나친 스왑(swap)이 발생하여 오히려 시스템 효율이 떨어짐

• 시스템 구성 시 시스템 환경을 고려하여 DMP를 정해야 함 다중 프로그래밍시스템

(9)

2. 운영체제의 유형별 특징

• 시분할시스템(time sharing system)이란?

• 일괄처리시스템은 어떤 프로그램이 한번 CPU를 차지하게 되면 작 업이 종료될 때까지 CPU를 반환하지 않기 때문에 실행 시간이 긴 프로그램 뒤에 있는 프로그램들은 응답 시간이 길어짐

• 시분할시스템은 여러 프로그램들이 CPU 사용 시간을 분할하여 나 누어 갖는 운영체제 유형을 말하며 기본적으로 다중 프로그래밍이 지원되어야 함

시분할시스템

큐 CPU 주기억장치

프로그램1

프로그램2

프로그램3

(10)

2. 운영체제의 유형별 특징

• 분산처리시스템(distributed processing system)이란?

• 2개 이상의 시스템이 각각의 CPU, 운영체제, 주기억장치를 가지 고 독립적으로 수행되면서 필요한 경우, 시스템 간의 통신에 의해 협조하는 운영체제 유형으로 다음과 같은 2가지 유형이 있음

• 강 결합 시스템(tightly coupled system) : 프로세서가 주기 억장치와 클럭을 공유

• 약 결합 시스템(loosely coupled system) : 모든 것을 독립적 으로 운영하면서 시스템 차원의 통신을 수행하도록 함

• 1980년대 등장한 유형으로 고가의 메인 프레임을 구입하는 것보 다 여러 대의 소형 컴퓨터를 네트웍으로 결합시키는 것이 비용 면 에서 효율적이라고 판단

분산처리시스템

입출력장치 1 CPU 1

CPU 2

주기억장치 1 주기억장치 2

(11)

2. 운영체제의 유형별 특징

• 다중처리시스템(multi processing system)이란?

• 1개의 시스템에 2개 이상의 프로세서를 두고 신뢰성, 가용성, 시 스템 성능을 향상시키는 운영체제 유형

• 저 비용으로 대형 컴퓨터의 성능에 근접한 시스템 성능을 보일 수 있음

• 두 가지 구성 방법

• 주종(master/slave) 다중 시스템 : 여러 개의 프로세서 중 1 개를 마스터 프로세서로 지정하여 주기억장치, 입출력장치, 파일 등을 관리하고, 슬래이브 프로세서가 할 일을 지정함

• 구성하기 용이하다는 장점은 있으나 마스터 프로세서에 게 많은 부하가 걸려 시스템이 비효율적으로 사용될 가능 성이 높음

• 대칭형(symmetric) 다중 시스템 : 모든 프로세서가 동일하 다는 가정 하에 동일한 부하로 업무를 수행하게 하고 동등한 조건이므로 프로세서간에 늘 동기화를 유지해야 함

다중처리시스템

(12)

3. 운영체제의 발전 과정

• NO OS

• 운영체제가 없고, 컴퓨터의 모든 동작을 오퍼레이터가 수작업으로 스위치를 작동하는 방법으로 실행

0세대(1940년대)

• 일괄처리시스템

• 동일한 프로그램을 모아서 실행시킴으로써 불필요한 셋업 시간 (setup time)을 줄여서 시스템 성능 향상

• 버퍼링

• CPU와 입출력장치 간의 속도 차를 줄이면서 시스템 성능을 향상

• 스풀링

• 디스크를 버퍼로 쓰면서 주기억장치가 불필요하게 낭비되는 것을 막으면서 시스템 성능을 향상

1세대(1950년대)

(13)

3. 운영체제의 발전 과정

• 다중 프로그래밍시스템

• 다중 처리시스템

• 시분할시스템

2세대(1960년대 초반)

• 범용시스템

• IBM 시스템 360이라는 걸출한 시스템이 3세대를 주도

• 이전까지는 컴퓨터 시스템이 특정 목적을 위해 설계되고 설계된대 로 사용되어 왔으나 IBM 360 시리즈부터 모든 일을 할 수 있는 범 용 컴퓨터가 등장하게 됨

• 다중모드시스템

• 일괄처리, 시분할처리, 실시간처리, 다중처리가 모두 지원되는 운 영체제를 말하고, 시스템 구성(system configuration)을 어떻게 하 는가에 따라 시스템의 성격이 정의되어짐

3세대(1960년대 중반~1970년대 중반)

(14)

3. 운영체제의 발전 과정

• 컴퓨터 네트웍

• 서로 다른 하드웨어, 서로 다른 운영체제를 갖춘 이종 컴퓨터 간 에도 전혀 문제없이 통신이 가능해짐

• 가상 머신(virtual machine)

• 이전까지는 프로그래머가 시스템의 하드웨어적 특성을 정확히 이해해야만 프로그램이 가능했으나 가상 머신이 등장하면서 운영 체제가 만들어주는 가상 머신 환경에서 프로그램을 하면 되는 개 발 환경이 조성됨

• 분산처리시스템

• 메인 프레임을 한번에 바꿀 필요 없이 소형 컴퓨터만 계속 증설 하면 되는 분산처리시스템 환경이 보편화되면서 시스템 구축 비용 이 절감됨

• 개인용컴퓨터

• 마이크로프로세서의 보편화로 개인용컴퓨터의 운영체제가 비약 적인 발전을 거두게 됨

4세대(1970년대 중반 이후)

(15)

4. 운영체제 기능

• 메모리 관리

• 메모리는 컴퓨터 시스템에서 가장 핵심적인 자원 중의 하나로 통 상 주기억장치와 보조기억장치로 구분

• 주기억장치는 CPU가 직접 주소로 지정할 수 있는 유일한 장치

• CPU가 프로그램을 처리하기 위해서는 프로그램은 반드시 디스 크에서 주기억장치로 이관되어야 함

• 이 때 주기억장치의 절대주소가 프로그램에 할당되어야 함

• CPU 이용률과 시스템 응답속도를 높이기 위해서는 주기억장치 에 몇 개의 프로그램을 보유하고 있어야 하는데 이를 위해서는 다 양한 메모리 관리 기법이 존재

• 메모리 관리를 위해 해야 할 일

• 현재 메모리의 어느 부분이 사용되고 누가 사용하는지에 대 한 정보

• 기억 공간에 어떤 프로세스를 저장할지에 대한 결정

• 기억공간을 할당하고 회수하는 방법 결정 자원관리 기능

(16)

4. 운영체제 기능

• 보조기억장치 관리

• 프로그램이 실행되는 동안 필요한 부분은 당연히 주기억장치에 있어야 하지만 주기억장치는 용량이 적기 때문에 프로그램의 모 든 부분이 주기억장치에 있을 필요는 없음

• 보조기억장치 관리를 위해 해야 할 일

• 비어있는 공간 관리

• 저장 장소 할당

• 디스크 스케줄링

• 프로세스 관리

• 프로세스는 수행되는 작업 단위로, 생성부터 종료될 때까지 다 양한 상태에 처하면서 자원을 사용하게 됨

• 프로세스 관리를 위해 해야 할 일

• 프로세스와 스레드 스케줄링

• 사용자와 시스템 프로세스 생성과 제거

• 프로세스의 중지와 재수행

• 프로세스 동기화 및 통신 기법 제공

• 교착상태 해결 기법 제공

(17)

4. 운영체제 기능

• 장치 관리

• 입출력장치의 복잡한 특성을 이해하지 않고도 장치를 사용할 수 있도록 하는 관리가 필요함

• 장치 관리를 위해 해야 할 일

• 임시 저장 시스템

• 일반적인 장치 드라이브 인터페이스

• 특정 하드웨어 장치를 위한 드라이버

• 파일 관리

• 디스크, 테이프와 같은 보조기억장치에 파일을 효과적으로 저장 하거나 저장된 파일을 인출하는 방법 제공

• 다중 사용자 시스템에서는 파일 접근에 대해 어떻게 접근을 허 용할 것인지에 대한 제어

• 파일 관리를 위해 해야 할 일

• 파일 생성과 제거

• 디렉토리 생성과 제거

• 보조기억장치에 있는 파일의 매핑

• 안전한 저장 매체에 파일 저장

(18)

4. 운영체제 기능

• 시스템 보호

• 프로세서, 기억장치, 파일, 기타 자원에 대한 적절한 접근 권한을 부여

• 네트워킹

• 분산시스템과 같이 메모리나 클럭을 공유하지 않는 시스템에서 네트웍은 매우 중요

• 시스템에 있는 프로세서는 다양한 방법으로 구성될 수 있는 통신 네트웍을 통해 연결

• 네트웍은 완전 접속과 부분 접속으로 연결될 수 있는데 통신 네 트웍을 설계할 때는 경로 설정, 접속 정책, 충돌, 보안 등의 문제를 고려

• 명령 해석기와 시스템 관리

• 사용자가 입력한 여러가지 명령은 제어 문장에 의해 운영체제에 전달하고 이 명령이 무슨 명령인지에 대해 명령 해석기가 해석

• 소형 컴퓨터에서는 명령 해석기가 운영체제의 일부지만 중대형 컴퓨터는 운영체제의 일부가 아니라 인터페이스에 해당

기타 기능

(19)

5. 운영체제 서비스

• 브트스트래핑(bootstraping)이란?

• 부팅(booting)이라고도 하는데 운영체제 프로그램들이 주기억장치 에 적재되는 과정

• 운영체제를 주기억장치에 적재하는 것이 주 임무인 부트스트랩 로 더(bootstrap loader)는 ROM에 저장되어 있고, 디스크에 있는 운영 체제 프로그램을 불러서 주기억장치로 적재시킴

부트스트래핑 서비스

부트스트랩 로더 1. 컴퓨터가 작동되면 ROM에 저장된 부트 스트랩 로더 실행

2. 부트스트랩 로더는 디스크에 저장된 운 영체제를 주기억장치에 적재

3. RAM에 적재 ROM

RAM

4. 운영체제 시작

(20)

5. 운영체제 서비스

• 사용자 인터페이스

• 운영체제의 많은 기능은 화면이나 스피커를 통해 확인할 수 없고, 오직 사용자 인터페이스만 확인 가능

• 가장 대표적인 사용자 인터페이스는 CUI(Character User

Interface) 또는 CLI(Command Line Interface)와 GUI(Graphic User Interface)

• 프로그램 수행

• 프로그램을 주기억장치에 적재하고 기능을 수행하여 결과를 사 용자에게 전달

• 입출력 동작

• 프로그램 중에 포함된 입출력 명령 수행을 위해 입출력장치 가동

• 파일 시스템 조직

• 파일을 정확히 읽고 기억, 생성과 삭제를 할 수 있어야 함

• 통신

• 오류 탐지

• 하드웨어 및 소프트웨어에서 발생하는 오류를 탐지 사용자 서비스

(21)

5. 운영체제 서비스

• 자원할당

• 계정

• 각 사용자가 어떤 자원을 언제 어떻게 사용했는지에 대한 집계

• 보호

• 한 작업이 운영체제 또는 다른 작업의 수행을 방해하지 못하도록 프로그램을 보호해야 함

시스템 서비스

• 프로세스 제어 : 프로세스 적재, 생성, 수행, 종료, 취소, 대기 등

• 파일 조작 : 파일 생성, 삭제, 수정, 개방, 폐쇄, 읽기, 쓰기, 재배치 등

• 장치 조작 : 장치 요구, 해제, 읽기, 쓰기, 재배치 등

• 정보 관리 : 프로세스, 파일, 장치 속성의 설정과 획득 등

• 통신 : 통신 연결의 생성, 제거, 메시지 송수신, 상태 정보 전달, 원격장 치의 부탁 및 제거 등

시스템 호출 서비스

(22)

6. 운영체제 구조

• MS-DOS

• 인터페이스와 기능에 대한 계층이 잘 분리되어 있지 않아서 응용프 로그램이 장치 드라이버를 직접 건드릴 수 있게 되어 있음

• 초창기 UNIX

• 계층화 되어 있긴 하지만 커널과 시스템 프로그램으로 양분되어있 는 성격이 더 강함

단순 구조 운영체제

응용 프로그램

상주시스템 프로그램

MS-DOS 장치 드라이버

ROM BIOS 장치 드라이버 MS-DOS

하드웨어에 대한 커널 인터페이스 셀과 명령

컴파일러와 인터프리터 시스템 라이브러리

커널에 대한 시스템 호출 인터페이스 사용자들

초기 UNIX

커널

(23)

6. 운영체제 구조

• 운영체제의 단위 기능을 더 작은 단위로 나눔으로써 내부 동작을 더 자 유롭게 변경하게 함

• 계층 구조 운영체제는 유사한 기능을 수행하는 요소를 그룹으로 묶어 최하위 계층인 하드웨어에서 최상위 계층인 사용자 인터페이스에 이르기 까지 다수의 계층으로 구성

계층 구조 운영체제

사용자 프로그램 계층 5

입출력장치를 위한 버퍼링 계층 4

오퍼레이터-콘솔장치구동기 계층 3

입출력장치를 위한 버퍼링 계층 2

사용자 프로그램 계층 1

입출력장치를 위한 버퍼링 계층 0

장치구동기와 스케줄러 계층 5

가상메모리 계층 4

입출력 채널 계층 3

프로세서 스케줄링 계층 2

명령 번역기 계층 1

하드웨어 계층 0

사용자 프로그램 계층 6

(24)

6. 운영체제 구조

• 단일 커널

• 운영체제의 기본 기능 뿐 아니라 시스템 운영에 필요한 많은 서 비스 루틴을 커널 하나에 포함시킨 후 시스템 호출과 인터럽트 처 리 부분으로 제공

• 모든 구성요소를 함께 그룹화하기 때문에 효율적인 시스템 자원 관리가 가능하다는 장점

• 커널의 크기가 커져서 버그의 원인을 규명하기 어렵고 바이러스 에 취약함

• 마이크로 커널

• 커널에는 하드웨어 초기화, 메모리 관리, 프로세스 관리 및 프로 세스 간 통신, 프로세스 간 협력을 위한 기본적인 동기화 기능만 남김

• 네트웍 시스템, 파일 시스템 상호작용, 장치 관리 기능은 커널 밖 즉, 사용자 모드에서 실행되도록 함

• 서버와 사용자 간의 통신이 많아져서 속도 저하의 원인이 됨 마이크로커널 구조 운영체제

(25)

6. 운영체제 구조

API 응용

프로그램

응용 프로그램 응용

프로그램

프로세스 관리

메모리 관리

파일 시스템

하드웨어

드라이버

응용 프로그램

하드웨어 드라이버 파일

시스템

API

프로세스 관리

메모리 관리

단일 커널 마이크로 커널

참조

관련 문서

특정 네임스페이스에 포함되어 있는 식별자를 전역 네임스페이스(또 는 다른 네임스페이스)에 있는 것처럼 사용하는 방법.

채터링을 방지하는 것을 스위치 디바운싱(Debouncing)이라하고 하드웨 어적인 방법과 소프트웨어적인 방법이 있다.. 그러나

입출력 인터페이스, 입출력 채널(channel), 입출력 프로세서, 입출력 제어기 (controller), 장치 제어기(device controller) 등의 여러 가지

• 다중 스레드 방식은 하나의 프로세스 안에 여러 개의 스레드가 있으므로 지금 실행되는 스레드에서 입출력 명령이 발생해서 더 이상 스레드가 실행되지 못하는

통신 기능 RF(Radio Frequency) 송수신 칩, Power Amplifier/안테나, WiFi/Bluetooth/FM/NFC(Near Field communication)/GPS 입출력 기능

• 프로세서 내부에 있는 입출력 데이터와 주소 레지스터를 입출력 모 듈과 연결한 형태로 주소 레지스터와 버스 사이에서 데이터를 직접 전송할 수 있는 가장

통신 기능 RF(Radio Frequency) 송수신 칩, Power Amplifier/안테나, WiFi/Bluetooth/FM/NFC(Near Field communication)/GPS. 입출력 기능

§ 함수인수에서 Data_array는 전체 자료의 영역을 지정하고, Bins_array는 계급구간의 영역을 지정함. § 여기서 확인을 클릭하면