24
CHAPTER 2 운운운운 운운 (OPERATING-SYSTEM STRUCTURE) 운운운운 SIG -OPERATING SYSTEM CONCEPTS-

운영체제 Sig2

Embed Size (px)

Citation preview

Page 1: 운영체제 Sig2

C H A P T E R 2 운 영 체 제 구 조( O P E R A T I N G - S Y S T E M S T R U C T U R E )

운영체제 SIG-OPERATING SYSTEM CONCEPTS-

Page 2: 운영체제 Sig2

CHAPTER 2. 운영체제 구조(OPERATING – SYSTEM STRUCTURE)

2.1 운영체제 서비스2.2 사용자 운영체제 인터페이스 (user operating system interface)2.3 시스템 호출 (system call)2.4 시스템 호출의 유형2.5 시스템 프로그래밍 (system programing)2.6 운영체제 설계 및 구현 (operating system design and implementation)2.7 운영체제 구조 (operating system structure)2.8 가상 기계 (virtual machine)2.9 운영 체제 생성 (operating system generation)2.10 시스템 부트2.11 요약 (summary)

Page 3: 운영체제 Sig2

CH2.1 운영체제 서비스

운영체제 : 프로그램 실행 환경을 제공 프로그래머에게 편리성 제공

• 사용자 인터페이스 (user interface)• 프로그램 수행 (program execution)• 입출력 연산 (I/O operation)• 파일 시스템 조장 (file system manipulation)• 통신 (communication)• 오류탐지 (error detection)• 자원할당 (resource allocation)• 회계 (Accounting)• 보호 (protection) 와 보안 (security)

Page 4: 운영체제 Sig2

CH2.2 사용자 운영체제 인터페이스 (USER OPERATING-SYSTEM INTERFACE)

• 사용자의 운영체제 접근 방식• 명령어 라인 인터페이스• 명령어 해석기 (command interface) GUI 형태

• 한 시스템에서 다양한 형태의 명령어 해석기 - 셀 (shell) 를 제공 가능• 사용자가 지정 명령을 가져와서 수행

• 명령어 해석기의 구현 방법• 해석기 자체가 명령을 실행할 코드를 가지고 있음

• 새로운 명령어를 쉽게 추가 할 수 있다 . (unix , linux…)

• GUI(graphical user interface)• 사용자 친화적인 방식• 마우스 기반 시스템 (windows, mac OS …)

Page 5: 운영체제 Sig2

CH2.3 시스템 호출 (SYSTEM CALL)

• 시스템 호출 : 운영체제의 사용 가능한 서비스 인터페이스 제공• asm, C, C++, 기반으로 작성 .

연속된 시스템 호출의 예입력 파일 이름 획득 화면에 프롬프트 출력 입력 받아 들임출력파일 이름 획득 화면에 프롬프트 출력 입력 받아 들임입력 파일 열기 파일이 존재하지 않을 경우 , 비정상적 종료출력 파일 생성 파일이 존재 할 경우 , 비정상적 종료루프 입력파일로부터 읽어 들임 출력 파일 에 씀읽기가 실패할 때 까지출력 파일 닫기화면에 완료 메세지 출력정상적인 종료

API: 응용 프로그래밍 인터페이스(Application programming interface)

응용프로그래머가 사용 가능한 함수 집합

Page 6: 운영체제 Sig2

CH2.3 시스템 호출 (SYSTEM CALL)

• API vs System call• API: 보다 쉽고 간단하게 접근할 수 있도록 서비스 이용 방법을 정의한 함수• System call: 소프트웨어 인터럽트로 수행 , 운영 체제의 특정 서비스를 요청• 일반적으로 시스템 콜을 직접 사용하는 것보다 API 사용

• 사용하기 편해서… / 호환성의 문제

• 시스템 호출 인터페이스• API 함수의 호출을 가로채어 필요한 시스템 호출을 호출• 통상 각 시스템 호출에는 인덱스가 할당테이블 = 시스템 호출 인터페이스• 시스템 호출 을 부르고 , 시스템 호출의 상태와 반환 값을 리턴

Page 7: 운영체제 Sig2

CH2.3 시스템 호출 (SYSTEM CALL)

System Call

interface

Page 8: 운영체제 Sig2

CH2.4 시스템 호출의 유형

• 시스템 호출의 유형• 프로세스 제어

• 실행 중인 프로세스의 종료 끝내기 ( 정상 ) / 중지 ( 비정상 )• 다중 프로그램 실행시의 서로간의 적재 / 실행• 프로세스 생성 , 종료• 프로세스 속성 ( 작업의 우선순위 / 시간 ) 획득 , 프로세스 속성 결정• 작업 혹은 프로세스의 실행 종료 의 기다림• Wait event / signal event• 병행프로세스들의 조정• Time profile : 특정 프로그램의 특정 위치 혹은 수행한 시간의 양 ( 카운터 )

• 추적 실비 와 정규 타이머 인터럽트를 필요• 단일 태스킹 : 컴퓨터가 시동 시 하나의 명령어 해석기만 호출 (MS-DOS)• 다중 태스킹 : 사용자가 시스템에 로그인시 사용자가 선택한 셀이 선택 (FreeBSD)

Page 9: 운영체제 Sig2

CH2.4 시스템 호출의 유형

Page 10: 운영체제 Sig2

CH2.4 시스템 호출의 유형

• 시스템 호출의 유형• 파일 조작

• 파일 생성 / 삭제• 열기 / 닫기• 읽기 쓰기 / 위치 변경• 파일 속성 획득 및 설정

• 장치 관리• 장치를 요청 / 방출• 읽기 쓰기 / 위치변경• 장치 속성 획득 / 장치 속성 설정• 장치의 논리적 부착 / 분리

• 정보 유지• 시간과 날짜 설정• 시스템 자료ㅢ 설정 과 획득• 프로세스 , 파일 , 장치 속성의 획득 및 설정

• 통신• 통신 연결의 생성 , 제거• 메시지 송신 , 수신• 상태 정보 전달 …

Page 11: 운영체제 Sig2

CH2.5 시스템 프로그램 (SYSTEM PROGRAM)

• 시스템 프로그램• 하드웨어 운영체제 시스템 프로그램 응용 프로그램• 프로그램 개발과 실행을 위해 편리한 환경을 제공• 시스템 프로그램의 범주

• 파일관리• 파일과 디렉토리의 조작

• 상태정보• 시스템의 정보 ( 날짜 , 시간 , 사용가능한 메모리… 등 ) 을 표시

• 파일변경• 문장 편집기

• 프로그래밍 언어 지원• 컴파일러 , 어셈블러 , 해석기 등등

• 프로그램 적재와 수행• 절대 적재기 , 재배치 가능 적재기 , 링키지 에디터 , 중첩 적재기

• 통신• 프로세스 , 사용자 , 타 컴퓨터 사이의 가상 접속 기법

• 시스템 유틸리티 , 응용 프로그램 : 웹 브라우져 , 워드프로세서 같은…

Page 12: 운영체제 Sig2

CH2.6 운영체제 설계 및 구현 (OPERATING-SYSTEM DESIGN AND IMPLEMENTATION)

• 운영체제 설계 목표• 사용자 목적 / 시스템 목적• 설계 , 구현 , 유지보수가 쉬우며 , 적응성 , 신뢰성 , 무오류 , 효율성 을 가져야 한다 .

• 메커니즘 과 정책• 메커니즘 : 어떤 일을 어떻게 할 것 인가 • 정책 : 무엇을 할 것 인가

• ex) 중앙처리장치 보호 – • ① 메커니즘 : 타이머 구성• ② 정책 : 특정 사용자를 위한 타이머의 길이 설정

• 구현• 어셈블리어가 아닌 고급언어로 작성시…

• 장점 : 신속한 작성 , 이해도가 높음 , 이식성이 높음• 단점 : 속도가 느리며 , 기억장치를 많이 소모

• 시스템의 성능은 알고리즘과 자료구조에 영향을 받음• 병목 현상 식별

• 시스템 동작 추적 리스트 작성모의실험 ( 실시간 성능 측정 )

Page 13: 운영체제 Sig2

CH2.7 운영체제 구조 (OPERATING-SYSTEM STRUCTURE)

• 간단한 구조 (simple structure)• MS-DOS

• 모듈들이 제대로 분할되어 있지 않음• 응용 프로그램이 기본적으로 하드웨어에 접근할 수 있음

• 초기 UNIX• 구성 : 커널과 시스템 프로그램의 두 부분• 커널 : 시스템 호출 인터페이스 아래 부분과 물리적 하드웨어 위 부분

→ 수많은 기능들이 하나의 계층으로 결합되어 있음• UNIX 의 발전 방향 : 커널의 분할 및 축소

Page 14: 운영체제 Sig2

CH2.7 운영체제 구조 (OPERATING-SYSTEM STRUCTURE)

• 계층적 접근 (Layered Approach)• 운영체제를 다수의 계층으로 구분하여 모듈화 하는 방법

• 최하위 계층 (layer 0): 하드웨어 ↔ 최상위 계층 (layer N): 사용자 인터페이스• 계층의 구현 :

• 추상적인 객체 : 자료의 캡슐화와 그러한 자료를 처리할 수 있는 연산으로 구성• 모듈화 (modularity): 각 계층은 자신 및 하위 계층에서 제공하는 함수 ( 연산 ) 들만을 사용

→ 시스템의 설계나 구현이 간단해짐

Page 15: 운영체제 Sig2

CH2.7 운영체제 구조 (OPERATING-SYSTEM STRUCTURE)

• 계층적 접근 (Layered Approach)• 계층적 설계의 문제점

• 계층 정의의 어려움• 낮은 효율성모듈화의 장점을 유지하면서 계층화의 단점을 줄이기 위해 , 적은 계층으로

설계하는 방안 등장

Page 16: 운영체제 Sig2

CH2.7 운영체제 구조 (OPERATING-SYSTEM STRUCTURE)

• 마이크로커널 (micro kernel)• 커널을 모듈화• 중요하지 않은 모든 구성 요소를 커널에서 제거• 시스템 및 사용자 수준 프로그램으로 구현• 클라이언트 프로그램• 사용자 공간에서 수행되는 다양한 서비스간 통신 설비 제공 목적• 장점 : 운영체제의 확장이 용이• 한 하드웨어에서 다른 하드웨어로서의 이식이 쉽다 .• 단점 : 가증된 시스템 기능 오버헤드 때문에 성능이 감소된다 .

Page 17: 운영체제 Sig2

CH2.7 운영체제 구조 (OPERATING-SYSTEM STRUCTURE)

• 모듈 (module)• 객체지향적 프로그래밍을 이용한 모듈화 운영체제• 커널은 핵심 적인 구성요소만 포함 부팅 또는 실행 중엔 부가적인 서비스만 링크• 동적 적재 모듈 사용핵심적인 기능 사용 + 특정 기능들을 동적으로 사용

Page 18: 운영체제 Sig2

CH2.8 가상 기계 (VIRTUAL MACHINE)

• 가상 기계 : 각 프로세스에게 기본 컴퓨터의 가상적인 사본 제공 .• 가상 기계 소프트웨어 : 여러 개의 가상 기계를 하나의 물리적 기계에 다중 프로그래밍 함• H/W 측면 : 실제 컴퓨터 자원들은 가상 기계를 만들기 위해 공유됨

1) 중앙처리장치 스케줄링 : 가상의 전용 처리기 제공2) 가상기억장치 기법 : 가상의 전용 기억장치 제공3) 스풀링과 파일 시스템 : 가상의 카드 판독기 , 가상의 라인 프린터 제공4) 시분할 터미널 : 가상의 전용 콘솔 제공5) 소형 디스크 (minidisk): 물리적 디스크에서 필요한 트랙을 할당하여 가상의 디스크 제공

• OS 측면 : 사용자는 주어진 가상기계 위에 단일 사용자 대화형 운영체제 CMS 를 수행

Page 19: 운영체제 Sig2

CH2.8 가상 기계 (VIRTUAL MACHINE)

Page 20: 운영체제 Sig2

CH2.8 가상 기계 (VIRTUAL MACHINE)

• 장점

1) 시스템 자원의 완전한 보호 : 각 가상 기계는 다른 모든 가상 기계로부터 완전히 분리되어 보안의 문제가 없으나 , 반면 자원을 직접 공유할 수 없음 → ( 공유 방법 ) ① 소형 디스크 공유

② 가상 기계의 통신 네트워크 정의

2) 가상 기계 시스템은 운영체제 연구와 개발에 완벽한 매체로서 사용될 수 있음 → 시스템 개발 시간에도 정규 시스템 동작을 중단할 필요 없음

3) 가상기계는 시스템 호환성 문제를 해결하는 수단으로 사용됨→ 선 마이크로시스템 (Sun Microsystems) 과 DEC(Digital Equipment

Corporation) 등의 컴퓨터에 가상 인텔 기계를 두어 MS-DOS 용 프로그램을 실행 시킬 수 있음

Page 21: 운영체제 Sig2

CH2.8 가상 기계 (VIRTUAL MACHINE)

• 자바 (Java): 선 마이크로시스템사에서 설계한 프로그래밍 언어→ 자바 언어에 의해 작성된 자바 프로그램은 자바 컴파일러에 의해 자바 가상 기계 (JVM)에서 실행될 수 있는 바이트코드 (bytecode) 를 생성함

• 자바 가상 기계 (JVM)- 여러 종류의 범용 운영체제 컴퓨터에서 실행됨ex) IBM 호환 PC, 매킨토시 , Unix 워크스테이션 및 서버 , IBM 소형 및 대형 컴퓨터 등- 웹 브라우저에서도 실행됨ex) 마이크로소프트 익스플로러 , 넷스케이프 커뮤니케이터 등- 하드웨어 상에서 직접 자바를 수행하는 작은 크기의 JavaOS 에서 실행됨ex) 무선전화기 등

• 자바 가상 기계는 산술 , 논리 , 데이터 이동 , 흐름 제어 명령을 포함하는 스택 기반 명령어 세트를 실현하며 , 하드웨어에 구축하기에 복잡한 객체 생성 , 조작 , 메소드 호출 명령 등을 실현할 수 있음

• 자바의 설계는 가상 기계를 구현하는 완벽한 환경을 제공함→ 바이트 코드는 기반이 되는 기계의 보안과 신뢰성을 위협하는 명령인지 검사된 후 만족되지 않으면 수행되지 않음

Page 22: 운영체제 Sig2

CH2.8 가상 기계 (VIRTUAL MACHINE)

Page 23: 운영체제 Sig2

CH2.9 운영체제 생성 (OPERATING SYSTEM GENERATION)

• 시스템 생성 (SYSGEN): 범용 운영체제가 특정 컴퓨터를 위해 구성되고 생성되는 것• SYSGEN 프로그램 : 하드웨어 시스템의 특정 구성에 관한 정보를 운영자에게 요구하거나

파일로부터 판독함

- 사용하는 중앙처리장치의 종류- 사용 가능한 기억장치의 크기- 사용 가능한 주변장치의 종류- 요구하는 운영체제의 종류 등

Page 24: 운영체제 Sig2

CH2.10 시스템 부트

• 부트스트랩 프로그램 (bootstrap program)/ 부트스트랩 적재기 (bootstrap loader):운영체제의 위치를 파악하여 기억장치에 적재하고 실행시키는 프로그램

→ ROM 에 저장되어 있음• 부트프로그램 기계 상태 진단 시스템 전체 초기화 운영체제 시작

• 운영체제 전체를 ROM 에 저장하는 형식 : 부트스트랩 코드 변경시 ROM 칩을 교체해야함

EPROM( 쓰기도 가능하도록 만드는 명령어가 주어지기 전까지는 읽기 전용을 유지함 )하드웨어와 소프트웨어의 중간적인 특정 : ROM 에 담긴 형태를 Firmware 라고 함 .

부트 블록 : 대용량 운영체제 또는 자주 변경되는 시스템부트스트랩은 펌웨어로 운영체제는 디스크에 존재 진단이 끝나고 운영체제를 시작하기 위한 디스크의 고정된 위치

부트 디스크 : 디스크 상의 부트스트랩과 운영체제의 새 버전을 디스크에 기록 부트 파티션을 가지고 있는 디스크