Presentation is loading. Please wait.

Presentation is loading. Please wait.

제3장 운영 체제 구조(Operating-System Structures)

Similar presentations


Presentation on theme: "제3장 운영 체제 구조(Operating-System Structures)"— Presentation transcript:

1 제3장 운영 체제 구조(Operating-System Structures)
Services in 3 Views Users : OS서비스 Programmers : OS의 인터페이스 (system call) OS designers : 구성 요소와 그들의 상호 연결(component and interconnections) 2000 운영체제

2 시스템 구성 (System Components) ~
프로세스 관리(Process Management) 프로세스 : 실행중인 프로그램(program in execution) 프로세스 : active entity : PC(program counter)가 있는 프로그램 프로그램 : passive entity: 디스크상의 파일 내용 하는 일 프로세스의 생성 / 삭제(creation / deletion) 프로세스의 중지 / 재수행(suspension / resumption) 프로세스의 동기화 (process synchronization) 프로세스의 통신 (process communication) 교착상태 방지와 회복(deadlock handling) 2000 운영체제

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

4 시스템 구성 (System Components) ~
보조기억 장치 관리(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를 위한 device driver를 이용 2000 운영체제

5 시스템 구성 (System Components)
보호 시스템(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 같은 강력한 명령 해석기 선호 2000 운영체제

6 운영체제 서비스 (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 2000 운영체제

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

8 Table로 매개변수 전달 2000 운영체제

9 시스템 호출 (System Calls) ~ 프로세스와 작업 제어(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 프로세스 실행 비교(그림 3.3, 그림 3.4) single-tasking system MS-DOS: 새 프로세스 생성 없음 TSR (Terminate and Stay Resident) 프로그램 제한적 동시수행: hooks an interrupt 후 TSR system call과 함께 exit: 자신의 subroutine을 interrupt routine으로 설정하여 interrupt를 가로챔 TSR system call: MS-DOS가 덮어쓰지 못하게 함 multitasking system UNIX: fork 로 새 프로세스 생성 -> exec fork, exec 시스템 호출 예제 참조 2000 운영체제

10 MS-DOS 실행 At System Start-up Running a Program 2000 운영체제

11 UNIX의 다중 프로그램 수행 2000 운영체제

12 fork 시스템 호출 printf(“One\n”); pid = fork(); printf(Two\n”);
PC A BEFORE fork AFTER printf(“One\n”); pid=fork(); printf(“Two\n”); printf(“One\n”); pid = fork(); printf(“Two\n”); PC PC A B 2000 운영체제

13 exec와 fork의 공동이용 /*runls – run ls in a subprocess */ main() { int pid;
pid = fork(); /*if parent, use wait to suspend _ execution until child finishes */ if(pid > 0) { wait((int *)0); printf(“ls completed\n”); exit(0); } /*if child then exec ls*/ if(pid == 0) { execl(“/bin/ls”, “ls”, “-l”,(char *)0); fatal(“execl failed”); /*getting here means pid is negative, so error has occurred */ fatal(“fork failed”); fatal(char *s) perror(s); exit(1); execv char *av[3]; av[0]=“ls”; av[1]=“-l”; av[2]=(char *)0; execv(“bin/ls”, av); execlp, execvp 쉘 환경변수 PATH를 따름 execlp(“ls”, “ls”, -l, (char *)0); execvp(“ls”, av); 2000 운영체제

14 fork와 exec호출의 조합 pid = fork(); wait((int*)0); execl(“/bin/ls” …);
PC A BEFORE FORK AFTER FORK wait((int*)0); execl(“/bin/ls” …); PC PC A B AFTER FORK AFTER EXEC wait((int*)0); /* first line of ls */ PC PC A B (now runs ls) 2000 운영체제

15 시스템 호출 (System Calls) ~ 화일 관리(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 크기 등 2000 운영체제

16 시스템 호출 (System Calls) 통신(Communication) (그림 3.5)
메시지 전송 모델(message-passing model ) get hostid, get processid open connection, close connection read message, write message daemon(accept connection) 공유 기억장치 모델(shared-memory model) 다른 프로세스에 소유된 기억 장소에 대한 접근을 위한 것 map memory (예) Unix의 shmget, shmat, shmdt, shmctl 등 2000 운영체제

17 통신 모델 (Communication Models)
Msg Passing Shared Memory 2000 운영체제

18 시스템 프로그램 (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 통신: , remote login, telnet 명령 해석기: 가장 중요한 시스템 프로그램 자체가 실행 코드 가짐: MS-DOS의 command.com 명령 첨가하면 재 컴파일 실행될 파일 인식 그것에 매개변수 전달: Unix (예) delete G: delete 실행 파일 적재 후 실행 작고 새 명령 첨가 쉬움 2000 운영체제

19 시스템 구조 (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 primitives) AIX : 2 kernel part System Call : programmer interface Shell : user interface 2000 운영체제

20 MS-DOS 계층 구조 2000 운영체제

21 UNIX 시스템 구조 2000 운영체제

22 시스템 구조 (System Structure) ~
계층적 접근(Layered Approach) modular operating system (모듈화된 운영체제) 강력한 제어 내부 시스템 변경의 자유로움 정보 은폐(information hiding) 각 운영체재 계층 = 추상 객체(abstract object) 구현: 자료가 캡슐화(encapsulation)된 것 자신보다 하위 계층에 의해 제공되는 연산들만 사용 장점 modularity debugging쉽고 verification쉽다. 단점 비효율적 처리시간 overhead(일련의 trap의 연속) (예) THE(Technische Hogeschool Eindhoven) 계층 구조 Venus 계층 구조 OS/2 계층 구조 (그림 3.9): multitasking, dual-mode, MS-DOS 보다 더 계층화 됨 Windows NT: highly layered -> 성능 향상위해 사용자 영역의 계층들을 kernel로 흡수 추세: 모듈화 그러나 계층은 적게 2000 운영체제

23 운영체제 계층 2000 운영체제

24 OS/2 계층 구조 2000 운영체제

25 시스템 구조 (System Structure)
Microkernel Mach(CMU; Carnegie Mellon University) microkernel approach essential -> kernel nonessential -> system and user-level programs client와 server는 microkernel에게 message passing하여 교신 새로운 서비스 추가되어도 kernel 수정 거의 없음 이식성(portability), 보안성(security), 신뢰성(reliability) 좋음 Digital Unix(OSF/1) Unix interface Mach kernel로 구현됨: Unix system call들을 사용자 수준 서비스에 대한 message들로 연결 Apple MacOS X Server Mach kernel 기반 Windows NT layered approach 다양한 응용(Win32, OS/2, POSIX) 실행 가능 user space에서 server 및 client 프로그램 실행 kernel이 client와 server 사이의 message passing 중재 2000 운영체제

26 Windows NT 클라이언트/서버 구조 2000 운영체제

27 가상 기계 (Virtual Machines) ~
가상적(Virtual) : illusion(환상) 가상기계(Virtual machine) ( 그림 3.11) 계층적 접근의 결과 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 2000 운영체제

28 시스템 모델 Non-virtual Machine Virtual Machine 2000 운영체제

29 가상 기계 (Virtual Machines) ~
가상 기계 소프트웨어가 하는 일 실제 기계상에서 가상기계(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. 가상기계 네트워크(물리적 통신망을 소프트웨어적으로 구현) 2000 운영체제

30 가상 기계 (Virtual Machines)
돌아온 VM VMs are coming back into fashion 시스템 조화성(compatibility) 문제의 해결책 (예) SunSparc에서 MS-DOS 프로그램 수행 본래의 프로세서 위에 가상 인텔 기계(Virtual Intel machine)를 생성(MS-DOS run) Intel 명령을 번역 -> SunSparc 명령어 세트로 변환 Intel based system에서 수행되는 것 같은 환상 제공 VMware 2000 운영체제

31 컴퓨터 안의 또 하나의 컴퓨터 Virtual Machine을 만들 수 있다. (VM에 다른 OS도 설치가 가능하다.)
컴퓨터 안의 또 하나의 컴퓨터 Virtual Machine을 만들 수 있다. (VM에 다른 OS도 설치가 가능하다.) VMware의 시스템요구사항 펜티엄 II 266MHz 또는 이상의 호환 프로세서 (펜티엄클래식 최소) 128MB 이상의 RAM (96MB RAM 최소) 256 이상의 컬러디스플레이 랜카드 (가상네트워크를 위한 옵션) VMware의 버전 Vmware는 Windows NT/2000버전과 Linux용 버전이 있으며 현재 버전은 2.03이다. 간편한 설치와 사용이 쉽다. 설치는 설치프로그램 실행 만으로 끝. Configuration Wizard를 이용해서 쉽게 또 다른 OS를 설치할 수 있다. 개별 가상 머신은 호스트 컴퓨터로부터 독립적이므로, 가상 머신에서 실행되는 연산들은 호스트 컴퓨터에 전혀 지장을 주지 않는다. 가상 디스크를 통해 재파티션 할 필요없이 새로운 운영체제를 추가 시킬 수 있다. 2000 운영체제

32 Vmware의 동작 Vmware에서 설치 가능한 OS Windows NT 4.0 Windows 95 Windows 98
DOS / Windows 3.1 Caldera OpenLinux Corel Linux OS Red Hat Linux SuSE Linux FreeBSD Novell NetWare (experimental) Vmware의 동작 2000 운영체제

33 2000 운영체제

34 자바 (Java) ~ 자바 기술: 1995 이후 나타나 Sun Microsystems의 기술 자바 기술의 3 구성요소
Programming-language specification object oriented: class들로 구성 architecture-neutral: 자바 가상 기계(JVM; Java Virtual Machine)에서 수행되는 명령어인 바이트코드 출력(bytecode output, .class) 생성 distributed: 원래 applets(제한된 자원에 접근하며 웹 브라우저에서 수행되는 프로그램) 지원으로 internet programming에서 인기, networking 지원, distributed objets(RMI; Remote Method Invocation) 지원 multithreaded language: multiple flows of control secure: Chapter 19 memory managing: garbage collection API(Application-programming Interface) base API: graphics, I/O, utilities, networking(java.lang, java.awt, java.io, java.net) 지원 standard API: enterprise, commerce, security, media 지원 Virtual machine specification JVM: class loader와 Java interpreter로 구성 class loader: .class files 적재 Java interpreter: interpreter 또는 JIT(just-in-time) compiler Java platform: JVM + Java API 2000 운영체제

35 자바 (Java) Java platform 구현 방법 on top of a host OS: Unix, Windows
as part of a web browser: Micosoft Explorer, Netscape communicator in hardware: cellular phones Java application 또는 applet이 실행 (main() method 실행) 될 때마다 JVM의 instance 생성 구현방법은 시스템 마다 다르나 표준적인 프로그래밍 인터페이스(architecture-neutral interface) 제공 Java 개발 환경 compile-time environment: java source(Java program 또는 applet)를 bytecode로 변환 run-time environment: host computer를 위한 Java platform(JVM) Java compiler -> byte code -> JVM -> 기계어 명령 -> H/W(그림 3.15) 2000 운영체제

36 자바 가상 기계 (Java Virtual Machine)
2000 운영체제

37 자바 플렛폼 (Java Platform) 2000 운영체제

38 플렛폼에 무관한 Java .class 파일 2000 운영체제

39 자바 개발 환경 (Java development environment)
2000 운영체제

40 시스템 설계 및 구현 (System Design and Implementation) ~
설계 목적(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) 2000 운영체제

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

42 시스템 설계 및 구현 (System Design and 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 2000 운영체제

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

44 시스템 설계 및 구현 (System Design and Implementation)
시스템 생성(System Generation) 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 : 미리 준비된 라이브러리에서 선택 (예) device driver선택 (재 컴파일 없으나 일반성 가짐) 2. Table driver : 모든 코드는 시스템의 일부, 테이블의 값대로 실행시간에 선택 OS이 생성되면(generation) -> hardware가 booting하여 이용 (bootstrap loader ->) bootstrap program MS-DOS : bootstrap loader -> bootstrap program(보조기억 장치안에) 2000 운영체제


Download ppt "제3장 운영 체제 구조(Operating-System Structures)"

Similar presentations


Ads by Google