Download presentation
Presentation is loading. Please wait.
1
1장 운영체제의 개념 1.1 운영체제의 개요 1.2 운영체제의 발달 1.3 대표적인 운영체제의 종류 1.1.1 운영체제의 목적
1장 운영체제의 개념 1.1 운영체제의 개요 1.1.1 운영체제의 목적 1.1.2 운영체제의 두 가지 관점 1.2 운영체제의 발달 1.2.1 초기 시스템 상주 모니터 개념 1.2.3 버퍼링과 스풀링 다중 프로그래밍 1.2.5 시분할/실시간 다중 CPU 1.3 대표적인 운영체제의 종류 MVS, VM, MS-DOS, OS/2, Windows 2000, UNIX, Linux
2
1.1 운영체제의 개요 ■ 컴퓨터 시스템의 구성 이해 : 16쪽 ▶ 하드웨어(Hardware)는 어떻게 구성되어 있는가?
1.1 운영체제의 개요 ■ 컴퓨터 시스템의 구성 이해 : 16쪽 ▶ 하드웨어(Hardware)는 어떻게 구성되어 있는가? ▶ 소프트웨어(Software)는? ● 응용 소프트웨어 ● 시스템 소프트웨어 : 운영 체제 Operating System
3
1.1.1 운영체제의 목적 운영체제 정의의 변화(17쪽) ■ Donovan, 1972
운영체제의 목적 운영체제 정의의 변화(17쪽) ■ Donovan, 1972 CPU, Main Memory, I/O Unit, 보조 기억장치, File 등의 각종 자원의 통제를 담당하는 프로그램 집단 - 하드웨어의 열악함(소용량, 저속)에 따라 원활한 작동 에 중점을 두었던 시기 : 각종 자원의 통제에 중점. ■ Shaw, 1974 인간과 기계간의 인터페이스, 사용자 프로그램 지원, 제한된 자원의 할당 요구를 통제. - 하드웨어를 사용하는 인간의 요구(프로그램)를 이해 시키려는 시기 : 인간과 컴퓨터 간의 인터페이스 강조.
4
1.1.1 운영체제의 목적(cont.) 운영체제 정의의 변화(17쪽) ■ Peterson, 1983
인간과 기계간의 인터페이스. 사용자 프로그램의 작업 환경 지원. 효율적 자원 할당 및 프로그램의 통제. - 기계의 능력(안정성, 대용량성, 고속 처리능력)을 인정하고 인간이 손쉽게 기계를 접근할 수 있는 방향 으로 운영체제가 구현되는 시기. - 사용자(인간)의 편의성을 강조.
5
운영체제의 목적(그림 1.1) 생산성 향상 (1) 사용자의 편의성 제고 (2) 시스템 성능의 극대화 1) 처리능력 증대
1) 처리능력 증대 2) 응답시간 단축 3) 사용가능도 증대 4) 신뢰도 향상
6
(1) 사용자의 편의성 제고 컴퓨터 하드웨어의 복잡한 구성을 알지 못하는 사용자에게,
손쉽게 컴퓨터를 이용할 수 있도록 하는 방향으로 운영체제 가 구현됨 사례 키보드 입력과 문자 출력 형태 마우스 입력, 2차원 그래픽을 이용한 아이콘 입력 윈도우 위주의 GUI(Graphic User Interface) 펜 입력, 음성 입출력, 화상(정지 및 동영상), 애니메이션, 3차원 그래픽을 포함한 MMI(Multi- Modal Interface) 형태
7
(2) 시스템 성능의 극대화 (1) 처리능력(Throughput)의 증대 “일정 시간 내에 시스템이 처리하는 일의 양”
▶ 시스템 전체의 일 처리 능력을 강조. ▶ 사람의 개입을 최소화하는 방향으로 설계. ▶ 작업의 자동화된 연속처리가 가능하도록 설계. ▶ CPU 대기시간을 짧게 : 다중 프로그래밍 도입
8
(2) 응답시간(Turnaround Time) 단축
“일의 처리를 컴퓨터에 의뢰하고 나서 결과를 얻을 때까지 걸리는 시간” ▶ 연속처리 기법(개념), ON-Line, 실시간 처리 개념 도입 ▶ 다중 프로그래밍 개념의 도입, 시분할 처리 개념 도입 (3) 사용 가능도(Availability) 증대 “컴퓨터시스템 내의 한정된 자원을 신속하고 충분히 지원해 줄 수 있는 정도” ▶ 자원의 양과 관계가 있음. ▶ 각종 자원에 대한 정보 관리가 필요하며, 신속히 지원해 줄 수 있는 스케쥴링 기법 필요 ▶ 시스템 유지보수, 오동작에 대한 자동적 대처 기법도 도입.
9
(4) 신뢰도(Reliability) 향상
“시스템이 정확하게 작동되는 정도” ▶ 하드웨어 오류의 자체 회복 시도 기능 ▶ 소프트웨어적 오류에 대한 상세한 메시지 ▶ 하드웨어적 시스템의 신뢰성 향상 구축 - Dual, Duplex 시스템
10
1.1.2 운영체제의 두가지 관점 (1) 사용자/컴퓨터 인터페이스 관점 “운영체제가 사용자에게 무엇을 지원할 것인가?”
운영체제의 두가지 관점 (1) 사용자/컴퓨터 인터페이스 관점 “운영체제가 사용자에게 무엇을 지원할 것인가?” ▶ 프로그램 생성 작업을 지원 ▶ 프로그램의 정상적 수행을 지원 ▶ 입출력 기기에 대한 정상적 접근을 지원 ▶ 원하는 화일에 대한 각종 접근 요구를 지원 ▶ 시스템 자원과 데이터의 불법적 접근 보호 ▶ 통신 지원, 계정 관리, 오류 검출과 조치
11
1.1.2 운영체제의 두가지 관점(cont.) (2) 시스템 자원 관리자 “한정된 자원의 원활한 관리를 어떻게 할 것인가?”
▶ 관리해야 할 자원 : 기억장치, 프로세서(CPU), 입출력 장치, 파일(file) 등 ▶ 관리해야 할 내용 1) 각종 자원에 대한 현재 상태 파악 2) 자원 분배를 위한 스케줄링 정책 결정 3) 분배 정책 수행을 위한 자원 할당 작업 4) 자원의 회수 작업 및 그에 따른 정보 변경
12
화일 프로세서 (CPU) 운영체제 프로그램 운영체제 I/O 모듈 데이터 주기억 장치 I/O 모듈 I/O 기기 사용자 프로그램과 데이터 입출력 장치 I/O 모듈 I/O 기기 그림 1.3 운영체제에 의해 관리되는 자원
13
1.1.2 운영체제의 두가지 관점(cont.) (3) 운영체제의 구조와 기능의 계층화
▶ 운영 체제는 대단히 많은 프로그램의 집단임. ▶ 프로그램의 복잡한 관계를 가짐. ▶ 명확하게 정의된 작은 조각으로 구분하여 작성한 후, 이들을 자세하게 규정된 입력, 출력 기능 등의 내부 연결 (interconnection)을 통하여 개발 또는 운영함. ▶ 운영체제의 주요 기능 - 접근 제어 기능 - 자원 관리 기능 - 데이타 제어 기능 - 장치 접근 기능
14
1.1.2 운영체제의 두가지 관점(cont.) 1) 간단한 운영체제(그림 1.4)
- 단순한 시스템, 제한된 구성 자원, 소형 시스템에 적용 - 단일 사용자용 운영 체제에 적용 USER’S PROGRAM 명령어 해석기 컴파일러, 인터프리터 파일 조작 기능 등 시스템 프로그램 시스템 호출 인터페이스 CPU 스케줄링, 파일 관리, 기억장치 관리, 보조기억 장치 관리 커널
15
1.1.2 운영체제의 두가지 관점(cont.) 2) 계층화된 운영 체제 ■ 개념 - 진화되고, 복잡한 하드웨어 구성에 적용
■ 개념 - 진화되고, 복잡한 하드웨어 구성에 적용 - 운영 체제의 각 모듈이 정교하고 세밀히 구분됨 - 내부 모듈의 변경이 쉬움 - 각 모듈이 계층화 됨 ■ 계층적 접근 방법의 장점 - 시스템 내부 동작에 대한 변경이나 재정의가 용이. - 기능과 특징에 따라 구성 요소의 분리 및 조합이 용이. - 외부 인터페이스의 변경없이 하위 계층에 대한 자유로운 접근이 가능하다.
16
사용자 프로그램 입출력 버퍼링 기능 콘솔 장치 구동 기능 주기억 장치 관리 기능 CPU 스케줄링 기능 하드웨어
17
1.2 운영 체제의 발달 ■ 발달 요인 ▶ 하드웨어의 비약적 발전 ▶ 주기억 공간의 대용량화(새로운 기억 소자)
▶ 대용량, 고속의 자기 디스크 출현 : 가상기억 공간 개념 ▶ 프로세서(CPU)의 처리 속도 증가 ▶ 컴퓨터 사용자의 서비스 요구 ▶ 시스템 운영자의 서비스 요구 ▶ 컴퓨터 프로그래밍 언어의 발전 - 운영체제의 구현 언어의 발전
18
1.2.1 NO-OS : 초기 시스템 ■ 컴퓨터 출현 초기 (1940-50년대 초기) ▶ 사용자가 컴퓨터 하드웨어를 직접 조작
▶ 입력장치 : 카드 리더 ▶ 실행 상황은 표시 램프로서 확인, 수동으로 조작 ▶ 작업(Job) 실행을 위한 여러 단계를 수작업으로 진행하기 때문에 시스템의 유휴 상태가 길어짐 ▶ 컴퓨터 사용 예약시간 예측 불가 ▶ 정상 실행을 위한 준비 시간이 길어짐
19
1.2.2 상주 모니터 개념 출현 ■ 출현 원인 ▶ NO-OS의 문제점인 작업 준비 단계와 실행 단계에서 수작업으로 처리되는 부분을 프로그램(OS)하여 주기억 공간에 상주시킴 ▶ 컴퓨터 조작원은 프로그래머의 요청에 따라서 작업을 진행시킴. 이에 따른 유휴 시간의 방지를 위하여 다른 작업으로 자동적으로 진행될 수 있도록 주기억 공간에 상주하는 프로그램의 필요성 대두됨 ▶ 컴퓨터 프로그래밍 언어의 발전 - 운영체제의 구현 언어의 발전
20
상주 모니터 : Resident Monitor
▶ 전문적인 조작원이 하던 일련의 작업 내용을 프로그램으로 작성하여 주기억 공간 내에 상주시킴. ▶ 프로그래머가 작성한 프로그램 처리에 대한 각종 지시 사항은 작업 제어 카드 (JCL)로 만들고, 이들을 해석하여 자동 처리가 되도록 함. ▶ 작업 제어 카드의 예 (그림 1.6 참조) : 전문적인 조작원이 하던 일련의 작업 내용을 프로그램으로 작성하여 주기억 공간내에 상주시킴. ▶ 상주 모니터의 구성 예 (그림 1.7 참조) 제어 카드 해석기, 장치 구동기, 작업 순서화 루틴, 인터럽트 처리 루틴 등.
21
1.2.3 버퍼링과 스풀링 개념의 도입 (1) 버퍼링(Buffering) I/O 기기 사이에서 처리됨.
버퍼링과 스풀링 개념의 도입 (1) 버퍼링(Buffering) ▶ 출현 이유 : 입출력 장치와 CPU 간의 처리 속도 차이에서 발생하는 CPU의 대기(유휴) 시간을 최소화하기 위해 필요하며, CPU의 효율적인 시간 관리를 지향. ▶ 주기억 장치의 일부를 버퍼로 설정함. ▶ I/O 작업은 가상의 I/O 기기인 버퍼에서 행함. ▶ 실제 입출력은 블록(Block) 단위로 버퍼와 I/O 기기 사이에서 처리됨. ▶ 느린 I/O 기기로 인한 CPU의 대기시간을 최소화하 며, CPU의 효율적 관리가 가능해짐.
22
1)버퍼링 입력의 예
23
1)버퍼링 출력의 예
24
2) 스풀링 : SPOOLING ■ 출현 이유 : 시스템이 보유하고 있는 유한한 개수의 입출력 장치의 사용을 원활하게 하며, 입출력 장치의 사용을 원하는 사용자에 대한 지원을 용이하게 함. ▶ 자기 디스크의 일부를 [스풀] 영역으로 사용함 ▶ 주기억 장치와 입출력 장치를 직접 연결하지 않고, 그 사이에 [스풀]을 위치시킴. ▶ 버퍼와의 차이점 <버 퍼> 주기억 공간 사용, 한 작업에 대한 I/O를 대상. <스풀링> 한 작업의 I/O와 다른 작업의 계산이 중복 실행 될 수 있음. 작업 풀(pool)의 구조이므로 작업 스케줄링이 가능함.
25
스풀링 처리 개념
26
1.2.4 다중 프로그래밍 개념의 도입 (1) 개념 - single user 시스템인 경우, 자원의 낭비가 심해진다.
다중 프로그래밍 개념의 도입 (1) 개념 ▶ 출현 이유 - single user 시스템인 경우, 자원의 낭비가 심해진다. - 특히, 저속의 입출력 장치와 고속 CPU인 경우, I/O를 하는 동안에는 CPU가 쉬게 되는 문제점이 발생함. ▶ 방안 - 하나의 작업이 I/O를 하는 동안, 다른 작업이 CPU를 쓸 수 있도록 여러 개의 프로그램을 주기억 공간에 적재시킴 다중 프로그래밍 (Multiprogramming)
27
그림 1.9 다중 프로그래밍시의 자원 상태
28
그림 CPU 유휴 시간의 비교
29
다중 프로그래밍의 전제 조건 ▶ 여러 개의 프로그램을 적재할 수 있는 충분한 기억공간
▶ 중앙 처리 장치 (CPU) 스케줄링 기법 및 CPU 보호 문제 ▶ 입출력 작업을 독립적으로 수행할 수 있는 방안 강구 (I/O 프로세서 또는 Channel 개념 등 도입) ▶ 교착 상태(deadlock) 처리 방법 ▶ 병행 제어 (Concurrent Control)를 위한 기법 ▶ 인터럽트(Interrupt) 개념 도입 등
30
(2) 채널 개념의 도입 ■ 채널(channel) ▶ 다중 프로그래밍 작업시, 반드시 필요한 장치임.
(2) 채널 개념의 도입 ■ 채널(channel) ▶ 다중 프로그래밍 작업시, 반드시 필요한 장치임. ▶ I/O작업을 CPU에 의존하지 않고 독립적으로 수행시켜 주는 처리기(processor) 임. ▶ I/O channel, PPU(peripheral processing unit) ▶ 채널은 CPU와 기억장치를 공유함. ■ 채널(channel) 의 역할 ▶ I/O 명령을 CPU로부터 받아서 I/O 장치를 구동. ▶ I/O 장치와 주기억 장치간의 데이터 전송을 제어. ▶ I/O 동작을 종결. ▶ I/O 장치로부터의 인터럽트를 CPU에게 알려줌.
31
그림 입출력 채널의 역할
32
채널 작업 수행을 위한 레지스터 CPU가 채널에게 내리는 명령 1) CAW(Channel Address Word)
- 해당 커맨드의 주소 즉, CCW의 주소 2) CCW(Channel Command Word) - 채널이 동작하여야 할 내용이 들어 있음 3) CSW(Channel Status Word) - 채널의 현재 상태 정보를 갖고 있음 CPU가 채널에게 내리는 명령 ■ SIO(Start I/O) : 입출력 시작 명령으로 채널 이름, 주변기기 이름, 입출력 프로그램의 위치(주소) 등을 알려줌. ■ TIO(Test I/O) : 입출력 검사 명령. ■ HIO(Halt I/O) : 입출력 정지 명령.
33
채널의 유형 1) 멀티 플렉스 형(Multiplex Mode) - 여러 개의 입출력 장치가 채널의 기능을 공유
- 여러 개의 입출력 장치가 시분할적으로 데이터를 전송함 - 저속의 입출력 장치가 부착됨(그림 1.14a) 2) 버스트 형(Burst Mode) - 하나의 입출력 장치가 데이터 전송을 행하는 동안에 채널의 기능을 독점 - 고속의 입출력 장치가 부착됨(그림1.14b)
34
채널의 종류 1) 셀렉터(Selector) 채널 - 버스트 형 - 채널 독점, 고속의 입출력 장치 부착
2) 바이트- 멀티플렉스(Byte-Multiplexer)채널 - 멀티 플렉스 형 - 채널 공유, 저속의 입출력 장치 부착 3) 블록-멀티 플렉스(Block-Multiplexer)채널 - 셀렉터 채널의 고속과 바이트-멀티 플렉스 채널 의 공유 개념을 혼합시킴 - 입출력 장치의 동시 동작 가능
35
(3) 보호 개념의 도입 ■ 보호 ■ CPU 보호 ■ 주기억 장치 보호 ■ 입출력 보호
- 컴퓨터 시스템 내에서 사용할 수 있는 각종 공유 가능한 자원(resource)에 대하여 프로그램, 프로세서 또는 user가 불법적으로 접근하는 것을 막아 줌. ■ CPU 보호 ■ 주기억 장치 보호 ■ 입출력 보호
36
1) CPU 보호 ■ 사용자 프로그램이 CPU 작업을 시행하는 동안 무한 루프(loop)에 빠져, 모니터(운영 체제)로 제어권이 넘어오지 못하는 경우를 방지 ▶ Timer에 의한 CPU 사용시간 제어 ▶ 일정시간 경과 후에는 인터럽트 발생시킴 ▶ CPU의 일정 사용 시간 = 시간 조각 : Time Slice ▶ CPU 스케줄러가 담당
37
2) 주기억 장치 보호 ■ 단일 사용자 시스템의 경우
2) 주기억 장치 보호 ■ 프로그램의 논리적 오류나 고의에 의하여 주기억 장치내의 내용이 불법적으로 지워지거나, 허가없이 접근 또는 유출되는 것을 방지함. ■ 단일 사용자 시스템의 경우 ▶ 모니터 부분과 사용자 프로그램 부분으로 구분됨 ▶ 제어권은 모니터 모드와 사용자 모드로 나눔 ▶ 모니터 모드에서는 주기억 공간 전체에 대한 접근 가능 ▶ 사용자 모드에서는 사용자 적재 공간만 접근 가능
38
■ 차폐 레지스터(Fence Register)의 사용
그림 기억장소 보호
39
다중 사용자 시스템의 경우 ■ 1개의 모니터 부분과 여러 개의 사용자 부분으로 나뉨.
■ 각각의 사용자 프로그램 영역에 대해서는 한계 레지스터(Limit Register) 또는 기준 레지스터(Base Register)를 두어서 보호를 함. ■ 한계 레지스터, 기준 주소값은 [모니터] 모드에서 시행되는 [특권 명령어]에 의해서만 적재됨. ■ 이러한 주소값은 [프로세서 제어 블록(PCB)]에 저장되어 사용됨 : PCB 81쪽 그림 2.9 참조
40
그림 기억장소 보호
41
3) 입출력 보호 ■ 한 사용자의 입출력 작업이 끝나지 않은 경우에, 다른 사용자의 입출력 작업이 끼여들지 않도록 방지함.
3) 입출력 보호 ■ 한 사용자의 입출력 작업이 끝나지 않은 경우에, 다른 사용자의 입출력 작업이 끼여들지 않도록 방지함. ■ 모니터 모드와 사용자 모드 개념을 도입함 ■ 이중 모드 방식 ■ 모든 [입출력 명령]은 모니터 모드에서만 처리할 수 있도록 특권 명령화 함. ■ 모든 사용자 프로그램은 [모니터]에게 입출력을 요청하고 그에 따라 [모니터]가 모든 입출력을 제어함. ■ 모니터에 대한 [입출력 요청] 모니터 호출, 시스템 호출, SVC라 함 (표 1-1 참조)
42
그림 시스템 호출의 예
43
4) 인터럽트 개념의 도입 ■ 사용자 프로그램의 모든 서비스 요청을, 운영체제는
■ 사용자 프로그램의 모든 서비스 요청을, 운영체제는 인터럽트(Interrupt, trap)로 간주함. 시스템 호출(supervisor call : SVC) 인터럽트 입출력 장치 (I/O Device) 인터럽트 프로그램 검사(Program Check) 인터럽트 외부(External) 인터럽트 기계 검사(Machine Check) 인터럽트
44
그림 인터럽트 처리 예
45
1) supervisor call 인터럽트(SVC)
프로그램의 정상 종료 / 비정상 종료 요청 자원 상태에 대한 요청, 필요한 자원 할당 요청 입출력 요청 등 2) 입출력 장치 (I/O Device) 인터럽트 I/O 채널이 행하는 작업의 종료 요청 (I/O Channel End) 입출력 장치의 사용 종료 요청 잘못된 입출력 명령을 만날 때 (Invalid I/O Command) I/O 장치의 상태 정보 : 장치 상태 테이블
46
3) 프로그램 검사 인터럽트 4) 외부(External) 인터럽트 5) 기계 검사 인터럽트
잘못 사용된 명령어(Invalid CPU Instruction) 특권 명령 실행시, 잘못된 계산 결과 발생tl 프로그램상의 각종 오류 발생시 비 정상 상태로 종료되므로 필요한 각종 오류메시지의 출력 또는 추가(부수)적인 작업이 필요함. 4) 외부(External) 인터럽트 CPU 사용시간 초과 (Interval time going out) 오퍼레이터의 콘솔 작업(Operator’s Interrupt Button) CPU간의 통신, 정전 등 5) 기계 검사 인터럽트 하드웨어적 오류 발생시, CPU 오류, 주기억 장치(Main Memory)오류 등
47
그림 인터럽트 동작 과정
48
1.2.5 시분할/실시간 시스템의 개념 (1) 시분할 시스템 (TSS : Time Sharing System)
시분할/실시간 시스템의 개념 (1) 시분할 시스템 (TSS : Time Sharing System) CPU의 시간을 각 사용자가 균등하게 분할하여 사용 모든 사용자를 동일하게 취급 대화형 체제 가능 CPU 할당 시 1회 최대 사용시간 시간 조각 (Time slice) 시분할 처리 시스템의 작업 처리 예 그림 1.20
49
그림 TSS의 작업처리 순서
50
1.2.5 시분할/실시간 시스템의 개념 (2) 실시간 처리 시스템 (Real-Time processing System)
시분할/실시간 시스템의 개념 (2) 실시간 처리 시스템 (Real-Time processing System) 실시간(Real-Time) 시한성, 직접성을 갖는 데이터를 즉각 입력하고, 즉시 결과를 받아 볼 수 있는 시간 온-라인(On-Line) 개념 도입 의학 진단용, 산업 제어용, 좌석 예약 업무, 은행 업무 등. 그림 1.21 참조
51
1.2.6 다중 CPU를 가진 시스템 다중 처리기 시스템 여러 개의 CPU를 하나의 시스템이 보유함
주기억 공간, 주변기기는 공유함 다수개의 프로그램이 동시에 처리가 가능해 짐. 시스템의 안정성이 높아짐 (CPU 고장시) 프로그램의 병렬 처리(concurrent processing)가 가능 그림 1.22 참조 : 10장의 10.5절 참조
52
1.3 대표적인 운영체제 1.3.1 MVS(Multiple Virtual Storage)
1.3 대표적인 운영체제 MVS(Multiple Virtual Storage) IBM 대형 범용 컴퓨터의 주력 운영 체제 MVS의 특징 시스템 내 각 작업들의 주소 크기와 똑같은 주소 공간 부여 다중화된 복수의 주소 공간이 시스템 내에 존재 각 프로그램은 2GB 까지의 주소 공간 가짐 주기억 공간 관리 : 페이징/세그먼테이션 혼합기법을 사용 다중화된 주소 공간의 이점 각각의 프로그램이 큰 가상 주소를 이용할 수 있다. 동시에 진행되는 프로그램의 다중도에 이론적 제약이 없고, 확장성이 풍부 프로그램은 각자의 주소 공간 내에서만 주소 참조를 할 수 있으므로 독립성, 보전성, 기밀 보호성 등이 높아진다.
53
1.3 대표적인 운영체제(Cont.) MVS의 프로세스 관리 대표적인 기능 2개의 종류(타스크와 서비스 요구)로 관리.
타스크 : 보통의 프로세스를 의미 서비스 요구 : 서비스 요구 제어 블럭으로 관리되는 높은 우선순위를 갖는 작은 타스크를 의미. 대표적인 기능 Supervisor JES(job entry subsystem) SMF(system management facility) TSO(time sharing option) SRM(system resource manager) 데이터 관리 RTM(recovery termination manager)
54
1.3 대표적인 운영체제(Cont.) 1.3.2 VM(Virtual Machine)
하나의 호스트(host) 컴퓨터 상에 복수의 가상적인 컴퓨터를 만들어, 이들을 동시에 병렬 가동. 가상적인 컴퓨터 : 가상 기계(VM : Virtual Machine) 실제의 호스트 컴퓨터 : 실 기계(Real Machine) VM의 주요 기능 CP(Control Program) CMS(Conversational Monitor System) RSCS(Remote Spooling Communication System) IPCS(Interactive Problem Control System) CMS 일괄(batch) 처리 기능
55
1.3 대표적인 운영체제(Cont.) 복수개의 게스트 운영 체제의 병렬 가동이 가능. 시스템 구성이 자유롭다.
- 복수 버전 시스템의 동시 실행이 가능 - 시스템 개발과 일반 사용자 서비스의 동시 실행이 가능 - 시스템 수행시의 신구(新舊) 양 시스템의 동시 실행이 가능 - 테스트 환경의 복수화 가능 시스템 구성이 자유롭다. - 호스트와 다른 하드웨어 구성으로 시스템 테스트가 가능 - 호스트보다 큰 주기억 장치, 다수의 디스크, 실제로는 접속되어 있지 않은 주변장치를 게스트 운영 체제를 이용하여 가상적으로 사용 가능 상태 변경 및 시스템 감시가 용이. - CP가 가상 기계의 움직임을 감시하며, 강력한 디버그 기능을 이용할 수 있다. 게스트 운영 체제 자체의 디버그도 가능하다.
56
1.3 대표적인 운영체제(Cont.) MS-DOS와 OS/2 생략
57
1.3 대표적인 운영체제(Cont.) 1.3.4 Windows 2000 : Windows NT 설계 목적
이식성 : 최소한의 재코딩만으로 다른 프로세서나 다른 컴퓨터 시스템에서 동작 가능 하드웨어 독립성 : HAL(Hardware Abstraction Layer) 계층을 포함하고 있어서, 상위 코드는 다른 기계로 이식하더라도 변경할 필요가 없음. 확장성 : 특권 모드와 비특권 모드로 분리. 모드의 분리는 실행부 프로세스의 무결성을 해치지 않고 변경이나 확장이 가능. 보안성(신뢰성) : 구조적 예외처리 기능과 다양한 보안 메커니즘 등을 제공 MS-DOS 및 MS-Windows 응용 프로그램과의 호환성 다중 스레딩 지원
58
1.3 대표적인 운영체제(Cont.) 각 계층의 주요 기능 HAL(Hardware Abstraction Layer) 계층
- Windows NT의 이식을 가능하도록 해주는 계층 - 하드웨어의 이질성 문제를 해결 커널(Kernel) 계층 : 특권 모드 - 스레드(thread) 스케줄링, 인터럽트 처리, 예외 처리, 프로세스 동기화 및 오류 복구 등 Executive 계층 - 보호 모드(protection mode)에서 작동 - 프로세스 관리, 가상 기억장치 관리, 입출력 관리 등의 기능 부 시스템(sub system) 모임 계층 : 비특권 모드 - 사용자 모드(user mode)에서 실행 - 다른 운영체제를 에뮬레이션(emulation)하는 기능 - 시스템 보안 기능을 제공하는 부 시스템으로 구성
59
1.3 대표적인 운영체제(Cont.) 1.3.5 UNIX UNIX 운영 체제의 특징
대화형 시분할 시스템(interactive time sharing system) Multi-tasking) / Multi-user 시스템 높은 이식성(portability)과 개방성 네트워킹 기능: TCP/IP의 기본 탑재 계층적(hierarchical) 화일 구조 풍부한 유틸리티 프로그램 제공 범용(general-purpose) 운영 체제 UNIX 운영 체제의 핵심 : 커널(Kernel) 프로세스 관리(process management) 장치 관리(device management)
60
1.3 대표적인 운영체제(Cont.) 커널(kernel) 쉘(shell) 시스템 호출(system call)
컴퓨터의 부팅(booting)시, 디스크에서 주기억 공간으로 적재되어 항상 상주. 프로세스 관리, 주기억 장치 관리, 입출력 관리, 화일 관리 등 컴퓨터 시스템의 모든 자원 관리를 담당. 쉘(shell) 운영 체제와 사용자 간의 대화를 담당 명령어 해석기(command Interpreter) 사용자 프로그램의 명령어 해석, 오류 발생시의 오류 원인을 알려준다거나 올바른 입출력의 방향도 제시 커널과 달리 주기억 장치 상에 상주하지 않고. 필요시에 디스크에서 불려 들여져 사용된다. 시스템 호출(system call) 사용자 프로그램이 커널에 접근할 수 있는 인터페이스를 제공.
61
1.3 대표적인 운영체제(Cont.) UNIX의 화일 시스템 UNIX 화일 시스템의 구조
하나의 화일을 연속된 바이트 열(byte string)로 간주 계층적 디렉토리 구조를 사용 디렉토리에 의해 참조되는 파일의 종류 일반적인 프로그램과 데이터에 해당하는 정규 파일 명시적인 시스템 호출을 통해 참조되는 디렉토리 파일 주변장치나 프로세스 통신 기법에 해당하는 특수 파일 UNIX 화일 시스템의 구조 부트 블록 : 첫 번째의 논리적 블록으로 UNIX의 활성화를 위한 실행 코드를 갖고 있다.
62
1.3 대표적인 운영체제(Cont.) 수퍼 블록 : 두 번째의 논리적 블록 - 물리적 디스크 자체에 대한 정보를 갖고 있음
- 파일 시스템에 있는 총 블록의 개수 - inode 자유 리스트에 있는 inode의 개수 - 자유 블록의 개수, 블록의 크기, 사용중인 블록의 개수 등 inode - 각 화일에 대한 정보를 갖고 있음 - 보통 120바이트 정도의 고정 길이를 가짐 - 디렉토리 파일 : 각 화일의 디스크 블록 위치를 가짐 - 특수 파일 : 주변 장치의 식별을 위한 정보를 가짐 - 각각의 화일별로 inode 리스트를 구성하며, inode 리스트에는 논리적인 블록 번호와 실제 디스크 상의 물리적인 블록 번호가 들어 있어서, 서로 간의 관계를 표시함 - 각 화일의 inode에 대한 확인은 UNIX 명령어 프롬프트인 ls -1"로 할 수 있음.
63
1.3 대표적인 운영체제(Cont.) Linux 생략
Similar presentations