Download presentation
Presentation is loading. Please wait.
Published byVera Kurnia Modified 6년 전
1
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
한빛미디어(주)
2
운영체제의 개념 운영체제 정의 일반적인 관점에서 본 운영체제의 기능과 역할
3
운영체제의 개념 ■ 자원 관리자 측면에서 본 운영체제의 기능
컴퓨터는 데이터의 이동, 저장, 처리와 이들과 관련된 필요한 자원을 제어하는 역할을 수행한다. ⇒ 조정자 역할 : 시스템을 운영하여 이들 자원을 적절하게 사용할 수 있도록 제어하는 역할 ⇒ 자원 할당자 또는 관리자로서의 역할 : 컴퓨터 시스템을 공정하고 효율적으로 운영하기 위한 역할 ⇒ 입출력 장치와 사용자 프로그램 제어 : 프로그램의 수행을 제어하며 특히 입출력장치를 동작하고 통제하는 역할 ■ 운영체제의 역할 사용자와의 인터페이스를 정의한다. 사용자들 간에 하드웨어를 공동으로 사용하도록 한다. 사용자들 간에 데이터를 공유토록 한다. 사용자들 간에 자원 스케줄링, 즉 자원 할당자로서의 역할을 수행한다. 입출력 보조 역할을 한다. 오류를 처리한다. P 68
4
운영체제의 개념 운영체제 목적 사용자에게 편리한 환경 제공 시스템 측면 성능 향상 처리능력의 향상: 시간당 작업처리량
신뢰도의 향상: 실패 없이 주어진 기능을 수행할 수 있는 능력 응답시간의 단축: 사용자가 시스템에 작업을 의뢰하고 나서 반응을 얻을 때까지의 시간 사용가능도의 향상: 고장과 오류가 발생해도 그 영향을 받지 않고 운영
5
운영체제의 개념 초기시스템: 작업 별 처리 콘솔에서 수행되는 형태로 프로그래머가 프로그램을 작성하여 종이 테이프 또는 펀치 카드로부터 프로그램을 기억장치에 적재시켜 사용하는 시스템 초기시스템의 작업단계 ① 포트란 컴파일러 테이프를 적재하는 단계 ② 컴파일러를 실행하는 단계 ③ 컴파일러를 제거하는 단계 ④ 어셈블러 테이프를 적재하는 단계 ⑤ 어셈블러를 실행하는 단계 ⑥ 어셈블러 테이프를 제거하는 단계 ⑦ 목적 프로그램을 적재하는 단계 ⑧ 목적 프로그램을 실행하는 단계
6
운영체제의 개념 모니터: 일괄처리 시스템 자동작업순서 중 하나의 작업에서 다른 작업으로 진행을 자동적으로 제어하는 프로그램
① 컴퓨터로 카드 판독기와 테이프 드라이브를 작동하여 데이터를 테이프에 저장 ② 생성된 데이터의 테이프는 연산 처리하기 위하여 7094 컴퓨터에 입력 테이프 드라이브에 사용 ③ 이때 계산하여 처리된 데이터는 출력 테이프 드라이브에 의해 출력 테이프로 생성 ④ 다시 1401 컴퓨터에서 출력을 위하여 프린터에 입력 테이프로 사용 P 68
7
운영체제의 개념 오프라인 연산: 장치 독립성 처리 방법 특수목적 장치를 개발하여 이용
소형 컴퓨터를 사용해서 테이프에 복사하는 방법 장점 카드 판독기와 라인 프린터의 속도에 더 이상 영향을 받지 않는다. P 71
8
운영체제의 개념 버퍼링 입출력 장치의 느린 속도를 보완하는 방법
9
운영체제의 개념 스풀링 디스크를 매우 큰 버퍼처럼 사용하는 방법
버퍼링이 컴퓨터의 하드웨어 일부를 사용한다면 스풀링은 별개의 오프라인 장치를 사용한다.
10
운영체제의 유형 02 다중 프로그래밍 시스템 프로세서가 수행할 작업을 항상 유지 프로세서 이용률 증진
작업 스케줄링(Job Scheduling) - 다중 프로그래밍(Multiprogramming) 가능 운영체제 메모리에 있는 작업들 중에서 하나를 택해서 실행 비 다중 프로그래밍(Non-multiprogramming)시스템 - 프로세서가 유휴(Idle) 상태 다중 프로그래밍 시스템 - 다른 작업으로 전환하여 수행
11
운영체제의 유형 02 다중 프로그래밍 시스템-계속 다중 프로그램 운영체제 - 복잡 여러 개의 작업 - 준비 상태 유지
메모리에 보관 일정 형태의 메모리 경영 필요 프로세서 스케줄링 여러 개의 작업(수행 준비)중 - 선택 목적 : 프로세서 이용률 향상 , 처리 능력 향상 특징 : 인터럽트(Interrupt) 개념 도입 [ 그림2-10] 다중 프로그래밍시스템을 위한 메모리 구조도
12
운영체제의 유형 02 시분할 시스템 다중 프로그래밍의 논리적 확장 개념 대화식 컴퓨터 - 사용자와 시스템간에 온라인 통신 제공
- 사용자가 운영체제(프로그램)에 직접 명령을 주고 즉시 응답 받음
13
운영체제의 유형 02 시분할 시스템-계속 시분할 시스템(TSS;Time Sharing System)
컴퓨터를 대화적(Interactive)으로 사용 프로세서 스케줄링과 다중 프로그래밍 사용 ⇒ 사용자에게 컴퓨터를 시간적으로 분할 분배 사용자는 메모리에 독립된 프로그램 유지 프로그램 실행, 입출력 수행(종료) - 사용자들이 컴퓨터 공유 트랜잭션 짧음 - 사용자는 소량의 프로세서 시간만 필요 시스템 빠르게 전환 : 사용자 ⇒ 다른 사용자로 각 사용자에게 자신의 컴퓨터가 있는 것 같은 착각(컴퓨터 공유) 목적: 사용자 응답시간 향상 반환시간 = 프로세서 수행시간 + 대기시간
14
운영체제의 유형 02 시분할 시스템-계속 분산 처리시스템
CTSS(Compatible Time Sharing System;호환이 되는 시분할 시스템) – MIT 개발 1961년 IBM-709에 탑재되어 사용 문제점 파일 시스템 보호 - 특정 권한을 가진 사용자 - 접근 권한(특정 파일 접근) - 한 작업이 다른 작업의 데이터 변경 제한 - 작업에 대한 보호 공유 자원 - 접근 순서 조정 기능 제공 분산 처리시스템 여러 개의 물리적 프로세서들 사이에 연산 분산 시스템은 자신의 운영체제와 메모리 소유 - 독립적으로 운영되고 필요할 때 통신 분산체제 구성 이유 자원 공유(Resource Sharing) 연산 속도 향상(Computation Speed-up) 신뢰성(Reliability) 통신(Communication) 장 참고
15
운영체제의 유형 02 분산 처리시스템-계속 강 결합(단단히 결합된) 시스템
프로세서(처리기)들이 메모리와 클럭(Clock) 공유 통신: 공유된 메모리 통하여 일어남 약 결합(느슨하게 결합된) 시스템 두 개 이상의 독립된 컴퓨터 시스템 – 통신 선을 통하여 연결 분산 시스템(Distributed System)이라고 함 입출력 장치 1 입출력 장치 2 프로세서1 프로세서2 메인 메모리 [그림 2-12] 분산(약 결합) 처리 시스템 의 구성 예
16
운영체제의 유형 02 다중 처리기 시스템 많은 프로세서(처리기) 사용 - 시스템은 신뢰성과 가용성, 컴퓨터 능력의 증가 등 목적 달성 단위시간당 처리량 증대 - 여러 개의 마이크로 프로세서 연결 다중 프로세서 구성 효과 초고속 프로세서 미사용 - 대형 컴퓨터 근접 능력 저렴한 비용 - 계산 능력 증대 운영체제 구성 방법 주/종(master/slave) 다중 처리시스템 대칭적 구성 다중 처리 시스템
17
다중처리기 운영체제 형태
18
운영체제의 유형 02 다중 처리기 시스템-계속 [그림 2-13] 주/종 다중 처리시스템 구성 상태 유지
주/종(master/slave) 다중 처리시스템 - 비대칭적 구성 마스터 제어기 : 슬레이브 제어기 관리 ← 단일 처리기 시스템 마스터 제어기 - 전체 시스템(파일, 장치, 메모리 ) 관리 시스템의 모든 프로세스 상태 유지 - 다른 프로세서들의 작업 스케줄링과 제어 프로그램 실행 구성 특징 단순 형태 마스터 제어기 많은 부하 – 신뢰도, 자원 사용 비효율적 마스터 제어기 인터럽트 수 증가 - 운영체제의 개입 요구 메인 메모리 마스터 프로세서 입출력 장치 슬레이브 [그림 2-13] 주/종 다중 처리시스템 구성
19
운영체제의 유형 02 다중 처리기 시스템-계속 대칭적 구성 다중 처리 시스템
모든 프로세서가 동일한 종류 - 최적 구현 교착상태 회피 – 동기화 : 매우 어려운 구성 장점 신뢰성이 높고 , 자원 효율적 사용 문제점 입출력 요청(인터럽트 발생) - 프로세서가 바쁜 상태를 계속 유지 프로세서들이 동일 자원 동시 접근 ⇒ 충돌 예방 메인 메모리 프로세서 2 입출력 장치 프로세서 3 프로세서 1 [그림2-14] 대칭적 구성 다중 처리 시스템
20
운영체제의 유형 02 단일 사용자 시스템 하드웨어 비용 감소 - 컴퓨터 시스템이 한 명의 사용자에게 전용 개인 컴퓨터 초기
- 다중 사용자(Multi User), 다중 작업(Multi Tasking) 지원 않음 최근 사용자의 편리함과 빠른 응답 제공 다중 작업, 다중 사용자 환경
21
운영체제의 발전 과정 03 운영체제 발전과정
22
운영체제의 발전 과정 03 제1세대(1950년대) 운영체제의 효시
1952년 GM사의 연구실에서 개발 - IBM 701의 운영체제 1955년 GM사와 북아메리카 항공사가 IBM 704의 운영체제 공동 개발 SHARE(IBM 사용자협회)- 1957년까지 IBM 704를 위한 운영체제 개발 IBM 1400 계열 -입출력 제어시스템 IOCS(Input/Output Control System) 패키지 사용 초기 운영체제 설치 시간(Setup Time)과 철거 시간(Teardown Time) 감소에 관심 유휴시간(Idle Time) 최소화 : 일괄처리(Batch Processing) 작업 하드웨어 장치 독립성 - 시스템 파일 이름의 개념 출현 시간 지연 해결방안 버퍼링(Buffring) 스풀링(Spooling)
23
운영체제의 발전 과정 03 제2세대(1960년대 초기) 일괄처리 형태 : 처리량(Throughput) 향상에 관심
장치 독립성(Device Independence) : 하드웨어 관리 편리 특징 다중 프로그래밍(Multiprogramming) 시스템 여러 사용자 프로그램들이 동시에 메인 메모리에 공존 다중처리(Multiprocessing) 시스템 시스템의 처리 능력 증진 : 여러 프로세서 사용 시분할 시스템(Time Sharing System) 사용자들이 터미널을 통하여 컴퓨터와 접촉 : 대화형태로 작동 실시간 시스템(Real Time System) 활용도보다 응답 시간 단축 - 많은 비용 [예] : 미국 항공 회사의 SABRE 예약 시스템 - 온라인 Transaction Processing System 효시 - 미국의 항공운수회사 좌석예약시스템
24
운영체제의 발전 과정 03 제3세대(1960년대 중반 - 1970년대 중반) 1964년 IBM시스템/360 계열
범용 시스템으로 설계 단점 기능이 필요 없는 분야의 사용자들 : 실행 시간 과부하 시스템 이해 : 기간 (매뉴얼 이해) 필요 오류 발생 : 수정 시간 필요 시스템 유지 : 많은 비용 부담 다중모드 시스템 일괄처리, 시분할처리, 실시간 처리, 다중처리 가능 - 컴퓨터 복잡 사용자 ⇔ 하드웨어 : 소프트웨어 계층 도입 사용자 : 소프트웨어에 대한 이해 필요 작업 제어 언어(Job Control Language)의 이해(사용방법) - 작업 설명을 기술한 언어
25
운영체제의 발전 과정 03 제4세대(1970년대 중반 - 현재) 컴퓨터 네트워크와 온라인 처리 보편화
개인용 컴퓨터 : 데이터 통신 인터페이스를 갖추어 터미널로 사용 지역적으로 멀리 떨어져 있는 여러 시스템들과 통신 가능 정보 보호(Information Security) : 최근의 중요 관심사 GUI (Graphic User Interface) : User Friendlily System 1960 ∼ 1970 : 텍스트(명령) 중심의 시스템 1980 : 사용자들에게 편리한 메뉴 지향적인 시스템 1990 : 도형(아이콘)과 마우스에 바탕을 둔 시스템 가상기계(virtual machine) 물리적인 상세한 부분 ⇒ 운영체제에 의해 만들어진 가상적 기계 관점 데이터베이스 시스템(Database System) 정보 제공 받을 권리가 있는 사람 : 일정한 통제하에서 정보 제공 분산 데이터 처리(distributed data processing) 자료가 발생하는 곳 ← 컴퓨터 능력
26
운영체제의 구성 04 기본 시스템 구성 구성 -여러 개의 시스템 구성 요소 시스템 구성요소 : 자원(Resource)
자원관리(Resource Management) : 운영체제의 첫 번째 역할
27
운영체제의 구성 04 메모리 관리 메인 메모리 관리 - 프로세서가 직접 주소로 지정할 수 있는 메모리 [예]
프로세서가 명령어 수행 - 명령어 메인 메모리 적재 프로그램 수행 - 절대 주소로 사상(mapping)되어 메인 메모리에 저장 사용자의 프로세서 이용률과 컴퓨터 응답 속도 개선 - 사용자 : 메모리에 몇 개의 프로그램 저장 ⇒ 메모리 관리기법 메모리 관리를 위한 운영체제 기능 현재 사용 부분과 누구에 의하여 사용되고 있는지 점검 어떤 프로세스들을 저장할 것인가 결정 할당하고 회수하는 방법
28
운영체제의 구성 04 메모리 관리-계속 보조 기억 장치 관리
메인 메모리 : 제한된 공간, 고비용, 계속적인 자료(프로그램) 저장 불가 ⇒ 보조 기억장치(디스크)사용 온라인 저장 매개체 : 디스크 컴파일러, 어셈블러, 정렬(sort), 문장 편집기 등 프로그램 - 메인 메모리에 적재될 때까지 디스크에 저장 응용프로그램 처리 : 출발지(source)와 결과의 목적지(destination) ⇒ 디스크 사용 디스크 저장 기법 - 컴퓨터 시스템에 매우 중요 디스크 관리를 위한 운영체제 기능 비어 있는 공간(Free-space) 관리 저장 장소 할당(Allocation) 디스크 스케줄링(Scheduling)
29
운영체제의 구성 04 프로세스 관리 프로세스 : 실행중인 프로그램, 시스템 내에서 작업의 단위
[예] 일괄처리 작업, 시분할 사용자 프로그램, 스풀링(Spooling)과 같은 시스템 작업(Task) 자신의 업무 수행을 위하여 자원이 필요함 [예] 프로세서 점유 시간, 메모리, 파일, 입출력 장치 등 자원 - 프로세스가 생성될 때 제공되거나 실행되는 동안 할당됨 시스템 - 운영체제 프로세스와 사용자 프로세스들이 존재 프로세스 관리를 위한 운영체제 기능 사용자와 시스템 프로세스들의 생성과 제거 프로세스의 중지와 재 수행 프로세스 동기화를 위한 기법 제공 프로세스 통신을 위한 기법 제공 교착 상태(Deadlock) 방지를 위한 기법 제공
30
운영체제의 구성 04 장치 관리(입출력 관리) 사용자로 하여금 특정 하드웨어 장치(입출력장치 등)의 세부적이고 복잡성을 지닌 기계로 느끼지 못하도록 확장된 기계로 인식시키는 것 [예] UNIX에서 입출력장치의 구체적 사항은 입출력 시스템(I/O system)에 의하여 대부분 숨겨져 있음 입출력 시스템을 관리하기 위한 운영체제 기능 임시 저장(Buffer-caching) 시스템 일반적인 장치 구동기 인터페이스 특정 하드웨어 장치들을 위한 구동기
31
운영체제의 구성 04 파일 관리 물리적으로 여러 가지 다른 형태 정보 저장
- 자기 테이프, 자기 디스크, 광 디스크(Optical Disk) 형태로 저장 테이프와 디스크 대량 저장 장치 관리 - 추상적인 개념으로 운영 파일(File) : 디렉토리(Directory)들로 구성 파일 관리를 위한 운영체제 기능 파일의 생성과 제거 디렉토리의 생성과 삭제 보조 기억 장치에 있는 파일의 사상(Mapping) 안전한(비휘발성) 저장 매체에 파일을 저장
32
운영체제의 구성 04 추가 관리 기능 보호 시스템(Protection System)
프로세스 - 다른 사용자들의 프로그램으로부터 보호 파일, 메모리, 프로세서 등 자원 ⇒ 운영체제에 의하여 권한을 부여 받은 프로세스만 수행 [예] 기억장치 주소를 지정하는 하드웨어 프로세스가 자신의 주소 영역에서만 실행될 수 있도록 보장 타이머 : 다른 프로세스가 양도하는 제어를 받지 않고는 어떤 프로세스도 프로세서의 제어를 얻지 못하도록 보장 보호(Protection) 컴퓨터 시스템에 의하여 정의된 자원(프로그램, 프로세스) ⇒ 사용자들의 접근을 제어하기 위한 기법
33
운영체제의 구성 04 추가 관리 기능-계속 네트워킹 분산 시스템(Distributed System)
기억 장치나 클락(Clock)을 공유하지 않는 프로세서들의 집합 - 프로세서 지역 메모리와 고속으로 전송하는 버스(전화선) 통신 매체를 통하여 상호 통신하는 프로세서들을 가짐 - 시스템 상에 있는 프로세서 : 통신 네트워크를 통해서 연결 - 네트워크 : 완전 접속과 부분 접속으로 연결 통신 네트워크 설계 경로 설정(Routing)과 접속 정책 충돌(Contention)과 보안의 문제점들을 고려해야 함
34
운영체제의 구성 04 추가 관리 기능-계속 명령 해석기 시스템
MS-DOS, 애플 매킨토시(Apple Macintosh) - 커널에 유지 대형 시스템 – 작업 수행, 사용자 등록 때 수행 - 명령 해석기(특수 목적 프로그램) 여러 가지 명령 : 제어 문장에 의해 운영체제에 전달 사용자와 운영체제 사이의 인터페이스의 역할 수행, 운영체제 아님 [예] 마우스 사용(Mouse-based) : 윈도우 매킨토시 명령해석기 : 사용자에게 친밀감 주는 인터페이스
35
운영체제 서비스 05 부트스트래핑 운영체제에서 자기 자신을 적재하는 과정 – 부팅(Booting)
부트스트랩 로더(Loader) - 디스크 트랙 0에 위치 목적 : 운영체제 적재 ⇒ 시스템 초기화 작업 진행 초기 운영체제 하드웨어 초기설정 없이 첫 번째 작업을 설정할 수 있는 상태로 컴퓨터 작동 현재 -메모리의 활용 방법과 프로그램의 융통성 중요 전체적인 초기 설정 하드웨어 오류에 의해 활동중인 작업들이 손실되지 않도록 복귀, 회복에 대한 방법이나 비정상적 작업에 대한 처리 수행 ⇒ 부분적 초기 설정기능 포함 초기화의 목적 운영체제 자체의 정리- 시스템 장치의 초기화 [예] 디렉터리, 파일 FAT(File Allocation Table) 등의 점검 시스템 버퍼와 인터럽트 벡터를 초기화 운영체제의 대부분 루틴을 메모리 하위 주소에 적재되도록 설정 사용자와의 대화를 통한 시간 등의 설정 명령 해석기의 적재와 준비 등
36
운영체제 서비스 05 부트스트래핑 - 계속 [그림 2-16] 부트스트래핑 과정
부트스트랩 로더는 디스크 고정 트랙에 저장된 운영체제 프로그램을 이동 컴퓨터 작동시작, ROM에 저장된 부트스트랩 로더 실행 RAM에 적재 JMP 명령 이용 운영체제 시작 [그림 2-16] 부트스트래핑 과정
37
운영체제 서비스 05 부트스트래핑 - 계속 UNIX system initialization
38
운영체제 서비스 05 사용자 서비스 프로그래머가 프로그래밍 작업을 쉽게 수행하게 제공되는 서비스
프로그램 수행(Program Execution) 프로그램 실행 프로그램은 정상적 또는 비정상적 실행을 끝낼 수 있어야 됨 입출력 동작(I/O Operation) 파일 혹은 입출력 장치 지정 특정 장치 - 특수한 기능들(테이프 구동기 되감기, CRT 화면 지움 등) 요구 운영 체제가 입출력 동작을 해주기 위한 방법 제공 파일 시스템 조작(File System Manipulation) 프로그램 - 파일을 읽고 기록, 이름에 의하여 파일을 생성하고 삭제 통신(Communication) 동일한 컴퓨터에서 수행되고 있는 프로세스들 사이에서 발생(내부) 컴퓨터 네트워크에 의하여 프로세스들 사이에서 발생(외부) 오류 탐지(Error Detection) 프로세서, 메모리 하드웨어 - 메모리 오류, 정전 등 입출력 장치 - 테이프에서 패리티 오류, 프린터의 종이 부족 등 사용자 프로그램 - 연산상 오버플로우(Overflow), 부적당한 기억장치 장소에 접근, 프로세서 시간 많이 사용 등
39
운영체제 서비스 05 시스템 서비스 시스템 자체의 효율적인 동작을 보장하기 위한 기능
자원 할당(Resource Allocation) 다수의 사용자나 다수의 작업들이 동시 실행 - 자원들은 각각에 할당 [예] 프로세서 사이클, 메인 메모리, 파일 메모리 : 특수한 할당 코드 입출력 장치 : 일반적인 요청과 해제 코드(Release code) 가짐 계정(Accounting) 사용자가 사용하는 컴퓨터 자원에 대한 정보 - 시스템 사용 통계 수집 사용 통계 - 사용자에게 서비스를 개선하기 위한 시스템 재구성 자료 보호(Protection) 정보의 소유자 - 사용을 제한할 수 있음 동시 작업 수행 - 한 작업이 다른 작업(운영 체제)에 대하여 방해 금지 시스템 호출을 위해 전달된 매개 변수의 타당성 검사 시스템 자원에 대한 접근 제어 보장
40
운영체제 서비스 05 시스템 호출 실행중인 프로그램과 운영 체제 사이의 인터페이스 사용자 프로그램
시스템 호출을 통하여 운영체제의 기능들을 서비스 받음 API(Application Programming Interfaces) 시스템 호출 방법 프로그램에서 명령 또는 서브루틴의 호출형태 일반적으로 어셈블리 명령어들로 제공 고수준 언어 프로그램으로부터 직접 수행 호출들은 미리 정의된 기능 혹은 서브루틴 호출과 유사 시스템에서 명령 해석기를 통하여 대화 형태로 호출 개인컴퓨터(PC), 워크스테이션에서 사용되는 방법
41
운영체제 서비스 05 시스템 호출 -계속 [그림 2-17] 시스템 호출 구조 테이블 사용자 프로그램 시스템 호출 엔트리 종료
루틴 1. 시스템 호출 서비스 요청 2. 스위치 모드 : 인수와 서비스 검증 3. 시스템 호출 테이블에 의한 서비스 루틴으로 분기 4. 스위치 모드 : 서비스 루틴으로 부터 반환 5. 시스템호출로 부터 반환 [그림 2-17] 시스템 호출 구조
42
운영체제 서비스 05 시스템 호출 -계속 프로세스 제어 (Process Control) 종료(End), 취소(Abort)
적재(Load), 수행(Execute) 프로세스 생성, 프로세스 종료 프로세스 속성(Process Attribute) 획득, 프로세스 속성 지정 대기 대기 사건(Wait Event), 신호 사건(Signal Event) 기억장치 할당 및 해제 파일 조작(File Manipulation) 파일 생성(Create File), 파일 삭제(Delete File) 개방(Open), 폐쇄(Close) 읽기, 쓰기, 재배치(Reallocation) 파일 속성 획득 및 지정 논리적 부착(Logically Attach)
43
운영체제 서비스 05 시스템 호출 -계속 장치 조작(Device Manipulation)
장치 요구(Request Devices), 장치해제(Release Devices) 읽기, 쓰기, 재배치(Reallocation) 장치 속성 획득, 장치 속성 설정 논리적 부착 또는 장치 제거 정보 관리(Information Maintenance) 시간과 일자의 설정과 획득 시스템 자료의 설정과 획득 프로세스, 파일, 장치 속성의 설정과 획득 통신(Communication) 통신 연결의 생성, 제거 메시지의 송수신 상태 정보 전달 제거된 장치의 부착 및 제거
44
시스템 구조 06 간단한 구조 MS-DOS 운영체제 : 소형, 간단, 제한된 시스템 최소한의 영역으로 대부분 기능 제공
모듈들이 효율적으로 분할되지 못함 구조화된 운영체제지만 인터페이스와 기능의 계층 분리가 미흡 [그림2-18] MS-DOS 계층구조
45
시스템 구조 06 간단한 구조-계속 제한적인 구조의 다른 예 : UNIX 운영체제
커널(Kernel)과 시스템 프로그램으로 구성 커널 - 여러 가지 인터페이스와 장치 드라이브로 분리 시스템 호출 인터페이스 아래와 물리적 하드웨어 위의 모든 부분 [예] - 파일 시스템, 프로세서 스케줄링, 메모리 관리 [역할] - 시스템 호출을 통한 또 다른 운영 체제 기능 제공 시스템 호출 UNIX에서 프로그래머 인터페이스(Programmer Interface)로 정의
46
시스템 구조 06 간단한 구조-계속 제한적인 구조의 다른 예 : UNIX 운영체제
47
시스템 구조 06 계층적 접근 계층구성 상위 계층에 의하여 수행될 수 있는 자료 구조들과 루틴들의 집합 계층 M
시스템의 모듈화 - 계층적인 방법 운영체제를 다수의 계층(수준)들로 분할하여 구성 각각 하위 계층의 위쪽에 배치 최하위 계층(Layer 0) - 하드웨어 최상위 계층(Layer n) - 사용자 인터페이스 계층구성 상위 계층에 의하여 수행될 수 있는 자료 구조들과 루틴들의 집합 계층 M 자신보다 하위 계층 연산 수행 [그림2-20] 운영체제 계층
48
시스템 구조 06 계층적 접근-계속 계층적 접근방식의 장점 - 모듈화(Modularity)
계층 : 자신의 하위 계층 서비스와 기능들만 사용 시스템 검증과 오류 수정 작업을 쉽게 할 수 있음 첫 번째 계층 : 기본 하드웨어 사용으로 자신의 기능 구성 나머지 시스템에 대하여 의문점을 가지지 않고 오류 수정 첫 번째 계층 오류 수정 정확한 기능을 가진다고 가정 ⇒ 두 번째 계층 구성 특정 계층에서 오류 발견 - 하위의 계층 오류 수정 ⇒ 오류는 자신의 계층에 있음 시스템의 설계나 구현 단순 자신보다 하위 계층에 의하여 제공된 연산 사용 연산 수행 과정 모름: 연산들이 무엇을 해야 하는가 알기만 하면 됨 계층은 자료 구조들의 존재와 동작 그리고 높은 계층으로부터 하드웨어를 숨기게 됨
49
시스템 구조 06 계층적 접근-계속 1968년 Dijkstra 교수에 의해 개발된 THE 운영체제에서 처음 사용
(Technische Hogeschool Eindhoven 회사 ; 네덜란드)
50
시스템 구조 06 계층적 접근-계속 Venus 시스템 : 마이크로 코드화
- 프로세서 스케줄링과 메모리 관리 - 하위 계층(0-4) [장점] - 빠른 수행 속도 - 마이크로 코드화 계층과 상위 계층들 사이를 명확하게 구분
51
시스템 구조 06 계층적 접근-계속 계층적 접근 방법의 어려운 점 계층 정의 어려움
각 계층은 자신의 하위 계층들만 사용 : 신중한 설계 방법 필요 [예] 보조 기억 장치(가상 메모리에 의하여 사용된 디스크 공간)을 위한 장치 구동기는 메모리 관리가 보조기억 장치를 사용할 수 있도록 요구 - 메모리관리 루틴들보다 하위 계층에 있어야 함 기능 - 계층에 명확하게 정의하기 어려움 ■ 보조 기억 장치 구동기 : 프로세서 스케줄러 위에 존재 - 구동기가 입출력을 위해 기다리는 동안 프로세서가 다시 스케줄 할 수 있기 때문 보조 기억장치 구동 시 루틴이 프로세서 스케줄러 하위에 요구 ■ 대형 시스템의 프로세서 스케줄러 - 교체(Swapping) 기능 필요
52
시스템 구조 06 계층적 접근-계속 계층화의 제한성으로 최근 계층화에 대한 부정론 제기 OS/2 MS-DOS의 제한성 극복
다중 작업, 이중 모드 운영(Dual Mode Operation) 특징 부가 부가된 복잡성과 강력한 하드웨어 설계 : 계층화된 형식으로 설계 운영 체제가 하드웨어에 대한 깊은 통제 가능 다수의 작업 기능 각 사용자 프로그램 이용 자원 정보 제공 사용자가 직접 하위 계층 기능들에 대한 접근을 하지 않고 있음
53
시스템 구조 06 계층적 접근-계속 [그림2-23 ] OS/2 계층 구조
Similar presentations