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

Slides:



Advertisements
Similar presentations
프로그래밍언어론 TA 윤들녁. 소개 윤들녁 연락처 : 공대 7 호관 4 층 401 호 데이터베이스 연구실 실습 후 날짜 _ 학번.zip 으로.
Advertisements

Embedded System 2009 년 11 월 16 일 Embedded Computer1 ● Hardware 와 Software 가 조합되어 특정한 복적을 수행하는 시스템 ● 특정한 기능을 수행하도록 Micro Processor 와 I/O Device 를 내장하며,
.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
OS 소개 Introduction 설계목표 기본 용어 Resource Management History.
컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
제3장 운영 체제 구조(Operating-System Structures)
Oozie Web API 기능 테스트 이승엽.
Linux/UNIX Programming
뇌를 자극하는 Windows Server 2012 R2
제 2장 컴퓨터 구조.
제 3 장 운영체제 구조 3.1 시스템 구성 프로세스 관리 프로그램 : 디스크에 저장, 수동적
Power Java 제3장 이클립스 사용하기.
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Introduction To Computers
Windows Server 장. Windows Server 2008 개요.
Operating Systems Overview
컴퓨터 프로그래밍 기초 [Final] 기말고사
Linux/UNIX Programming
컴퓨터 구조학 정보보호학과.
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
5장 Mysql 데이터베이스 한빛미디어(주).
UNIX Unbounded A Beginning Approach
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
11 장 LAN 기본 개념과 Ethernet LAN
07. 디바이스 드라이버의 초기화와 종료 김진홍
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Lecture #3 프로세스(Process).
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
운영체제 (Operating Systems)
뇌를 자극하는 Windows Server 장. Windows Server 2008 개요.
제 3 장 Memory - SRAM.
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
Chapter 10. 파일 시스템 인터페이스(File System Interface)
보조저장장치 구조(Secondary Storage Structure)
5장 Mysql 데이터베이스 한빛미디어(주).
Method & library.
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
자바 5.0 프로그래밍.
Cache Manager Yonghyun Kim Microsoft MVP Dev 5 team leader, ESTsoft
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Linux/UNIX Programming
리눅스 시스템 & 커널 기초 P.46 – P.53 이름: nsh009 학번: 112 1/20.
이름 : 황 상 두 전화번호 : 이메일 : PinTool 이름 : 황 상 두 전화번호 : 이메일 :
Device Driver 임베디드 시스템 I.
운영체제(Operating System)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
제1장 Unix란 무엇인가?.
Tiny OS와 NesC Tiny OS Part1. Won Mi Sun – 17 지능제어 연구실.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
컴퓨터 시스템 하드웨어 컴퓨터 시스템 소프트웨어 C P U Control Unit 입 력 장 치 출 력 장 치 ALU
자바 5.0 프로그래밍.
Unix 시스템 인천대학교 전자계산학과 성미영
Linux/UNIX Programming
Linux/UNIX Programming
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
뇌를 자극하는 Solaris bible.
오라클 11g 보안.
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
발표자 : 이지연 Programming Systems Lab.
운영체제 (Operating Systems)
System Security Operating System.
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
.Net FrameWork for Web2.0 한석수
Installation Guide.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
1장. C Language Synopsis.
Presentation transcript:

운영체제 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 저, 석상기 역, 희중당, Unix 의 내부구조 (The Design of the Unix Operating System), Maurice J. Bach 저, 조유근 역 편, 홍릉과학출판사, Unix 실습중심 UNIX 시스템 개론, 이동호 저, 정익사, 1993.

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

운영체제 3 장 시스템 구성 (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 를

운영체제 3 장 시스템 구성 (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 같은 강력한 명령 해석기 선호

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

운영체제 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)

운영체제 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 시스템 호출 예제 참조

운영체제 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 크기 등

운영체제 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 - 통신 : , remote login, telnet

운영체제 3 장 시스템 구조 (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 실행 파일 적재 후 실행 작고 새 명령 첨가 쉬움

운영체제 3 장 시스템 구조 (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)

운영체제 3 장 가상 기계 (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

운영체제 3 장 가상 기계 (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. 가상기계 네트워크 ( 물리적 통신망을 소프트웨어적으로 구현 )

운영체제 3 장 가상 기계 (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

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

운영체제 3 장 시스템 설계 및 구현 (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)

운영체제 3 장 시스템 설계 및 구현 (System Design and Implementation) 기법과 정책 (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) - 정책결정은 자원 할당과 스케줄링에 중요

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

운영체제 3 장 시스템 설계 및 구현 (System Design and Implementation) 구현 (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( 구성 / 조립 / 생성 )

운영체제 3 장 시스템 설계 및 구현 (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( 보조기억 장치안에 )