Presentation is loading. Please wait.

Presentation is loading. Please wait.

운영체제 3 장 1 과제 1 : Unix 이해 제출일 : 3 월 31 일 까지 제출 방법 : 지정 디렉토리 (~mysung/osreport/ 자기학번 ) 에 복사 및 출력 1. Unix 의 Booting 과정에 대하여 이해한 내용을 가능한한 자세하게 정리 2. 사용자의.

Similar presentations


Presentation on theme: "운영체제 3 장 1 과제 1 : Unix 이해 제출일 : 3 월 31 일 까지 제출 방법 : 지정 디렉토리 (~mysung/osreport/ 자기학번 ) 에 복사 및 출력 1. Unix 의 Booting 과정에 대하여 이해한 내용을 가능한한 자세하게 정리 2. 사용자의."— Presentation transcript:

1 운영체제 3 장 1 과제 1 : Unix 이해 제출일 : 3 월 31 일 까지 제출 방법 : 지정 디렉토리 (~mysung/osreport/ 자기학번 ) 에 복사 및 출력 1. Unix 의 Booting 과정에 대하여 이해한 내용을 가능한한 자세하게 정리 2. 사용자의 전자우편함을 살피다 새로운 전자우편이 도착하면 “ You have mail from 보낸 사람 이름 ” 을 출력하는 checkmail 프로그램 작성 -Unix 계정 만들기 -Unix 명령 익히기 -Vi 편집기 익히기 -C 프로그램 실행 방법 알기 도움말 - 우편함 파일이 커지면 새로운 전자우편 도착한 것 -sscanf, lseek 이용 참고문헌 -Unix 운영체제 (The Unix Operating System), Kaare Christian, Susan Ritchter 저, 석상기 역, 희중당, 1997. -Unix 의 내부구조 (The Design of the Unix Operating System), Maurice J. Bach 저, 조유근 역 편, 홍릉과학출판사, 1991. -Unix 실습중심 UNIX 시스템 개론, 이동호 저, 정익사, 1993.

2 운영체제 3 장 2 제 3 장 운영 체제 구조 (Operating-System Structures) Services in 3 Views -1. Users : OS 서비스 -2. Programmers : OS 의 인터페이스 (system call) -3. OS designers : component and interconnections 3.1 시스템 구성 (System Components) 프로세스 관리 (Process Management) - 프로세스 : 실행중인 프로그램 (program in execution) 프로세스 : active entity : PC(program counter) 가 있는 프로그램 프로그램 : passive entity: 디스크상의 화일 내용 - 하는 일 프로세스의 생성 / 삭제 (creation / deletion) 프로세스의 중지 / 재수행 (suspension / resumption) 프로세스의 동기화 (process synchronization) 프로세스의 통신 (process communication) 교착상태 방지와 회복 (deadlock handling)

3 운영체제 3 장 3 3.1 시스템 구성 (System Components) [cont.] 주기억 장치 관리 (Main-Memory Management) - 하는 일 사용 가능한 부분 파악 적재할 프로세스 결정 필요공간의 할당과 회수 파일관리 (File Management) - 하는 일 파일의 생성과 삭제 디렉토리의 생성 / 삭제 파일과 디렉토리를 관리하기 위한 프리미티브 ( 기본기능 ) 제공 보조기억장치에 있는 파일의 사상 (mapping) 파일 저장 입출력 시스템 관리 (I/O System Management) - 하는 일 임시저장 (buffer-caching) 시스템 : buffering, caching, spooling 일반적인 장치구동기 인터페이스 특정 하드웨어 장치들을 위한 구동기

4 운영체제 3 장 4 3.1 시스템 구성 (System Components) [cont.] 보조기억 장치 관리 (Secondary-Storage Management) - 하는 일 비어 있는 공간 관리 (free-space management) 저장 장소 할당 (storage allocation) 디스크 스케줄링 (disk scheduling) 네트워킹 (Networking) - 분산시스템 : memory 와 cache 를 공유하지 않는 프로세서들이 통신네트워크로 연결된 시스템 (high-speed bus 나 전화선을 통해 통신 - 설계시 고려사항 경로 설정 (routing) 정책 접속 (connection) 정책 충돌 (contention) 문제 보안 (security) 문제 -network access : file access 의 확장 network interface 를 위한 network device driver 를

5 운영체제 3 장 5 3.1 시스템 구성 (System Components) [cont.] 보호 시스템 (Protection System) - 컴퓨터에 의해 정의된 자원들에 대한 프로그램, 프로세스, 사용자들의 사용 권 한 접근을 제어하는 기법이 필요 -( 예 ) base 와 limit requests for user’s own address space 명령 해석기 시스템 (Command-Interpreter System) -command interpreter 다음 명령문 받아 실행 -control-card interpreter -command-line interpreter: command.com -shell user 과 OS 사이의 interface 로서 다음 명령을 받아 실행 ( 프로세스 관리 ~ 보호 ) 위치 -Kernel 안에 : 항상 존재 (MS-DOS 의 내부 명령 ) - 보조기억 장치에 : 필요할 때만 실행 (MS-DOS 의 외부 명령, Unix) - 형태 user friendly GUI(Graphical User Interface): Macintosh 의 mouse-based, icon-based sophisticated user 는 복잡하고 배우기 어려워도 Unix shells 같은 강력한 명령 해석기 선호

6 운영체제 3 장 6 3.2 운영체제 서비스 (Operating-System Services) 프로그램 수행 (programs execution) 입출력 작업 (I/O operation): file I/O, device I/O 파일 시스템 조작 : read/write/create/delete files 통신 (communication) -in the same system -> shared memory -in the different system -> message passing 오류 탐지 (error detection): I/O, memory, network, program errors 자원 할당 (resource allocation): multiusers, multiprogramming 회계 (accounting): usage statistics 보호 (protection) - 보호 (protection) : 정보보호, process 보호, 자원보호, 시스템 보호 - 보안 (security) : password OS services 제공 방법 : -system calls : assembly language -> high-level language -system programming

7 운영체제 3 장 7 3.3 시스템 호출 (System Calls) Process -> OS 의 기능 system calls 고급언어로 직접 호출 : C, Bliss, BCPL, PL/360 ( 예 ) fd = open(“file”, 0)……0: r, 1: w, 3:rw nread = read(fd, buf, n); 시스템 호출에 필요한 파라미터 전달 1. 레지스터 전달 2. 파라미터 블록 또는 테이블의 주소를 전달 (p66 그림 3.1) 3. 스택으로 전달 p66 시스템 호출형태 5 개 그룹 1. 프로세스 제어 (process control) 2. 화일 관리 (file manipulation) 3. 장치 관리 (device manipulation) 4. 정보 유지 보수 (information maintenance) 5. 통신 (communication)

8 운영체제 3 장 8 3.3 시스템 호출 (System Calls) [cont.] 프로세스와 작업 제어 (Process and Job Control) - 작업제어를 위한 시스템 호출들 프로세스 제어 (load, execute) 프로세스 생성 (create process or submit job) 프로세스 속성 획득과 설정 (get process attribute and set process attribute) 프로세스 종료 (terminate process) 시간대기 (wait time) 사건대기 (wait event) 사건신호 (signal event) 기억장치 할당 및 해제 : malloc, free - 디버깅을 위한 시스템 호출들 덤프 (dump) 추적 (trace) - 시간 프로필 (time profile) : 특정 부분 수행 시간의 양 trace - 프로세스 실행 비교 (p69 그림 3.3, p70 그림 3.4) single-tasking system MS-DOS: 새 프로세스 생성 없음 -TSR (Terminate and Stay Resident) 프로그램 제한적 동시수행 : hooks an interrupt 후 TSR system call TSR system call: MS-DOS 가 덮어쓰지 못하게 함 multitasking system UNIX: fork 로 새 프로세스 생성 -> exec -fork, exec 시스템 호출 예제 참조

9 운영체제 3 장 9 3.3 시스템 호출 (System Calls) [cont.] 화일 관리 (File Manipulation) - 생성 (create) - 삭제 (delete) - 열기 (open), 읽기 (read), 쓰기 (write), 재위치 (reposition), 닫기 (close) - 화일 속성 획득과 설정 (get file attribute and set file attribute) 장치관리 (Device Management) - 요구 (request) - 열기 / 닫기 (open/close) - 읽기 / 쓰기 (read/write) - 재위치 (reposition) 정보 유지관리 (information maintenance) -time -date - 사용가능 memory 크기 등

10 운영체제 3 장 10 3.3 시스템 호출 (System Calls) [cont.] 통신 (Communication) (p73 그림 3.1) - 메시지 전송 모델 (message-passing model ) get hostid, get processid open connection, close connection read message, write message daemon(accept connection) - 공유 기억장치 모델 (shared-memory model) 다른 프로세스에 소유된 기억 장소에 대한 접근을 위한 것 map memory 3.4 시스템 프로그램 (System Programs) 시스템 프로그램의 종류 - 파일 조작 :create, delete, copy, rename, print, dump, list.. - 상태 정보 :date, time, memory... - 파일 수정 :text editors - 프로그래밍 언어 지원 :compilers, assemblers, interpreters - 프로그램 적재와 수행 :absolute loader, relocatable loaders, linkage editors, overlay loader, debugging tool - 통신 :e-mail, remote login, telnet

11 운영체제 3 장 11 3.5 시스템 구조 (System Structure) 간단한 구조 (Simple Structure) -MS-DOS 최소의 메모리 공간 최대 기능 덜 모듈화 ROM BIOS 직접 이용 : low level 기능 직접 접근으로 전체 시스템 crashes 가능 하드웨어 보호 없음 : dual mode 없음 - 초기 UNIX 구성 -Kernel: bulky -Systems programs Kernel 의 분할과 축소 -Mach(microkernel: small set of necessary promitives) -AIX : 2 kernel part System Call : programmer interface Shell : user interface 3.4 시스템 프로그램 (System Programs) [cont.] 명령 해석기 : 가장 중요한 시스템 프로그램 - 자체가 실행 코드 가짐 : MS-DOS 의 command.com 명령 첨가하면 재 컴파일 - 실행될 파일 인식 그것에 매개변수 전달 : Unix ( 예 ) delete G: delete 실행 파일 적재 후 실행 작고 새 명령 첨가 쉬움

12 운영체제 3 장 12 3.5 시스템 구조 (System Structure) [cont.] 계층적 접근 (Layered Approach) - 추세 : modular operating system ( 모듈화된 운영체제 ) 강력한 제어 내부 시스템 변경의 자유로움 정보 은폐 (information hiding) 운영채재 걔층 = 추상 객체 (abstract object) 구현 : 자료의 캡슐화 (encapsulation) 자신보다 하위 계층에 의해 제공되는 연산들만 사용 - 장점 modularity debegging 쉽고 verification 쉽다. - 단점 비효율적 처리시간 overhead( 일련의 trap 의 연속 ) -( 예 ) THE(Technische Hogeschool Eindhoven) 계층 구조 (p79 그림 3.9) Venus 계층 구조 (p80 그림 3.10) OS/2 계층 구조 (p80 그림 3.11)

13 운영체제 3 장 13 3.6 가상 기계 (Virtual Machines) 가상적 (Virtual) : illusion( 환상 ) 가상기계 (Virtual machine) (p 그림 3.) - 계층적 접근의 결과 -OS kernel 도 bare hardware 로 간주 -( 예 ) IBM VM Operating System - 각 프로세스에게 실제 컴퓨터의 복사본을 제공하여 각 프로세스들이 자신의 프로세서에서 자신의 메모리를 가지고 수행되는 것 같은 ( 모든 하드웨어를 사 용하는 것 같은 ) 환상 (illusion) 을 만들어 주는 기계 CPU 스케줄링 가상 기억 장치 (virtual memory) 기법 이용 가상기계의 디스크 시스템 -3 disk drives -> 7 VM 가상 디스크 (virtual disk, ( 예 ) minidisks in IBM) 로 해결 물리적 디스크에서 필요한 만큼의 track 할당 가상기계의 운영체제 - 각 사용자기 자신의 OS 를 수행 -( 예 ) IBM VM OS 의 CMS : single user interactive system

14 운영체제 3 장 14 3.6 가상 기계 (Virtual Machines) [cont.] 가상 기계 소프트웨어가 하는 일 - 실제 기계상에서 가상기계 (multiple virtual machine) 를 다중 프로그래밍 (multiprogramming) 기계의 정확한 복제가 쉬운 일이 아님 - 기계 : 2 modes(user mode, monitor mode) - 가상기계 소프트웨어 : monitor mode 에서 동작 ( 진짜 OS) - 가상기계 자체는 user mode 에서만 동작 (virtual user mode 에서 system call-> virtual monitor mode) 다중 가상 기계의 다중 프로그래밍 - 매우 느림 ( 특권 명령들을 simulate) 가상기계의 장점 - 시스템 자원의 완벽한 보호 ( 예 ) 서로 다른 화일 시스템 : cf. UNIX multiuser: 1 화일 시스템 - 시스템 개발 시간의 제거 system programmer 의 가상기계에서 시스템 개발 (cf. 보통 시스템에서는 시스템 변경과 검사 동안 시스템 사용 불가 ) 가상기계의 단점 - 자원 공유가 어려움 1. minisidk 를 공유 ( 물리적 공유 디스크를 소프트웨어적으로 구현 ) 2. 가상기계 네트워크 ( 물리적 통신망을 소프트웨어적으로 구현 )

15 운영체제 3 장 15 3.6 가상 기계 (Virtual Machines) [cont.] 돌아온 VM -VM 이 come back into fashion - 시스템 조화성 (compatibility) 문제의 해결책 -( 예 ) SunSparc 에서 MS-DOS 프로그램 수행 본래의 프로세서 위에 가상 인텔 기계 (Virtual Intel machine) 를 생성 (MS-DOS run) Intel 명령을 번역 -> SunSparc 명령어 세트로 변환 Intel based system 에서 수행되는 것 같은 환상 제공 자바 (Java) - 최근 나타난 가상 기계의 예 -Object Oriented Language(Sun Microsystems) 자바 가상 기계 (JVM; Java Virtual Machine) 에서 수행되는 명령어인바이트코드 (bytecode) 출력 생성 JVM 수행 가능한 플랫폼에서만 수행됨 -JVM IBM-Compatible, Macintosh, Unix workstation and server, IBM minicomputer, mainframe 등 여러 종류의 컴퓨터에서 실행 가능 Web browser 안에 구현 : Micosoft Explorer, Netscape communicator 작은 JavaOS 상에서 구현 : no overhead Java 로 구현된 단일 목적의 컴퓨터 장치 : cellular phones 스택 기반 명령어 세트 : arithmetic, logical, data movement, flow control instruction Java compiler -> byte code -> JVM -> 기계어 명령 -> H/W

16 운영체제 3 장 16 3.6 가상 기계 (Virtual Machines) [cont.] -VM 구현을 위한 Java 의 장점 기계의 보안성 (security) 과 신뢰성 (reliability) 성 보장하기 위해 명령어 검사 객체 지향형 당신이 새라면 아침에 일찍 일어나야 한다. 그래야 벌레를 잡아먹을 수 있을 테니까. 만일 당신이 새라면 아침에 일찍 일어나라. 하지만 만일 당신이 벌레라면 아주 늦게 일어나야 하겠지. 쉘 실버스타인

17 운영체제 3 장 17 3.7 시스템 설계 및 구현 (System Design and Implementation) 3.7.1 설계 목적 (Design Goals) - 최상위 결정 하드웨어와 시스템 형태 (batch, time-shared, single-user, multiuser, distributed, real-time, general-purpose) -Requirements( 요구사항 ) 사용자 목적 (User goals) - 배우기 쉽고 (easy to learn), 사용하기 쉽고 (easy to user), 신뢰할 수 있고 (reliable), 안정적이고 (safe), 빠를것 (fast) 시스템 목적 (System goals) - 설계, 구현, 유지가 쉽고 (easy to design, implement, maintain), 유연하고 (flexible), 신뢰할 수 있고 (reliable), 요류없고 (error-free), 효율적일 것 (efficient)

18 운영체제 3 장 18 3.7 시스템 설계 및 구현 (System Design and Implementation) 3.7.2 기법과 정책 (Mechanisms and Policies) - 기법 (Mechanisms) : how to do something Ex) CPU 보호 기법은 Timer 로 - 정책 (Policies) : What will be done. Ex) timer out 시간 결정 - 정책 결정 -> 기법 결정 A general mechanism 이면 정책 변경이 몇몇 매개변수 변경망 유도 Ex) CPU-intensive VS I/O intensive 정책 -Microkernel-based OS(Mach) : 기법과 정책의 확실한 분리 -Apple Mac OS 기법과 정책의 혼합 (interface 가 Kernel 안에 -> Same look& feel) - 정책결정은 자원 할당과 스케줄링에 중요

19 운영체제 3 장 19 3.7 시스템 설계 및 구현 (System Design and Implementation) 3.7.3 구현 (Implementation) -OS 를 고급언어로 구현 - 최초 Burroughs computer 의 Master Control Program(MCP) : ALGOL 의 변경 -MULTICS(MIT) : PL/1 -Prime Computer 의 Primos OS : FORTRAN 의 일종 -UNIX, OS/2, Windows/NT(C++ 약간 ) : C -UNIX CPU Scheduler 와 device deriver 부분의 6% 인 900 여줄만 Assembly 어로 쓰임, 94% 는 C 로 - 장점 -1. Faster writting : 코드작성이 빠르고 -2. Compact codes : 코드가 간결하고 -3. Easier to understand and debug : 이해와 수정이 쉽고 -4. Easier to port : 쉽게 이식됨 MS-DOS : 8088 assembly 어로 쓰임 -> Intel 계열 CPU 에만 Unix : C 로 쓰임 -> Intel 80X86, Motorola 680X0, SPARC, MIPS RX000

20 운영체제 3 장 20 3.7 시스템 설계 및 구현 (System Design and Implementation) 3.7.3 구현 (Implementation) [cont.] - 단점 -1. Reduce speed : 속도가 느리고 -2. Increase storage : 기억장치가 많이 필요 - 그러나 좋은 Compiler 로 보완 - 성능의 관건 : 자료구조와 알고리즘 (code 가 assembly 로 되었거나 고급 언어로 되었거나 ) - 성능향상 critical routines(memory manager, CPU scheduler) 의 병목 (bottlenecks) -> assembly 어로 대체 3.8 시스템 생성 (System Generation) -OS 는 다양한 기종에 수행되어야 하므로 특정 컴퓨터 site 를 위해 시스 템을 configure/generate( 구성 / 조립 / 생성 )

21 운영체제 3 장 21 3.7 시스템 설계 및 구현 (System Design and Implementation) 3.8 시스템 생성 (System Generation) [cont.] -SYSGEN( 특별 프로그램 ) : System generation - 질문 What CPU is to be used? 사용 CPU 는 ? How much memory is available? 사용가능한 기억장치는 ? What devices are avilable? 사용가능한 주변장치는 ? What operating-system options are desired, or what parameter values are to be used? 운영체제 안에 선택사항과 매개변수는 ? - 보통은 컴파일해서 OS 의 새 버전 만족 (Tailor) - 다른 방법 ( 컴파일 X) 라이브러리 방식 1. Precompiled library : 미리 준비된 라이브러리에서 선택 Ex) device driver 선택 ( 재 컴파일 없으나 일반성 가짐 ) 2. Table driver : 모든 코드는 시스템의 일부, 테이블의 값대로 실행시간에 선 택 -OS 이 생성되면 (generation) -> hardware 가 booting 하여 이용 (bootstrap loader ->) bootstrap program MS-DOS : bootstrap loader -> bootstrap program( 보조기억 장치안에 )


Download ppt "운영체제 3 장 1 과제 1 : Unix 이해 제출일 : 3 월 31 일 까지 제출 방법 : 지정 디렉토리 (~mysung/osreport/ 자기학번 ) 에 복사 및 출력 1. Unix 의 Booting 과정에 대하여 이해한 내용을 가능한한 자세하게 정리 2. 사용자의."

Similar presentations


Ads by Google