제 3 장 운영체제 구조 3.1 시스템 구성 프로세스 관리 프로그램 : 디스크에 저장, 수동적

Slides:



Advertisements
Similar presentations
숙명여대 창병모 2011 가을 1. Unix/Linux 의 효과적 사용  command, shell programming, X-window,... 시스템 프로그래밍 능력 향상  file, process, network programming 시스템의 체계적 이해 및.
Advertisements

을지대학교 무선 네트워크 사용 방법 2010 년 06 월 01 일. 을지대학교 무선 네트워크 사용 방법 1. PC 무선랜 카드 활성화 및 체크 1 단계 : 시작 -> 설정 -> 네트워크 설정 2 단계 : 무선 네트워크 설정 선택 -> 마우스 버튼 오른쪽 클릭 -> 사용.
제 8 장 메모리 관리전략. 개요 2 기억장치 관리의 발전 개요 SSD(Solid State Drive) – 반도체 메모리 내장함, 처리속도 빠르고 소음이 없고 전력소모량이 적은 플래시 메모리 기반의 모델 주소 바인딩 (address binding) – 정의 논리적.
컴퓨터와 인터넷.
컴퓨터 운영체제의 역사 손용범.
Power Java 제3장 이클립스 사용하기.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Windows Server 장. Windows Server 2008 개요.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
PHP입문 Izayoi 김조흔.
11 장 LAN 기본 개념과 Ethernet LAN
강 명 수 LINUX 설치 강 명 수
Linux서버를 이용한 채팅프로그램 지도 교수님 : 이형원 교수님 이 름 : 이 은 영 학 번 :
07. 디바이스 드라이버의 초기화와 종료 김진홍
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
2 운영체제 소개.
저장장치 테이프 I/O장치 작업 사용자 프린터 디스크 주기억장치(RAM) OS 카드판독기 CPU 키보드 처리장치.
3. 데이타베이스 관리시스템.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
타이머카운터 사용법 휴먼네트웍스 기술연구소
6장 운영체제 6.1 운영체제란? 6.2 운영체제의 형태와 역사 6.3 운영체제의 구성 요소 6.4 커널과 프로세스
4. LAN의 배선체계 (3장. LAN: Local Area Network)
마이크로컨트롤러, 마이크로컨트롤러 보드 마이크로컨트롤러 보드 = 마이크로컨트롤러 +  마이크로컨트롤러 마이크로컨트롤러 보드.
ATmega128 FND 실습 휴먼네트웍스 기술연구소
TCP/IP Socket Programming…
1장 컴퓨터 시스템의 개요 - 컴퓨터의 기본 시스템(프로세서)을 이해한다. - 명령어 실행 주기를 알아본다.
1장 운영체제 2-C반 운영체제 박소라.
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
리눅스 시스템 & 커널 기초 P.46 – P.53 이름: nsh009 학번: 112 1/20.
27장. 모듈화 프로그래밍.
멀티미디어시스템 제 6 장. 운영체제 IT응용시스템공학과 김 형 진 교수.
SAS Statistical Analysis System 통계패키지 실습 (2011년 1학기)
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
22 장 전송층(Transport Layer)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
제1장 Unix란 무엇인가?.
제 1 장 운영 체제의 개요 Section 1 운영 체제의 개념 Section 2 운영 체제의 구성과 기능
7장 주기억장치 관리 A박도하.
Tiny OS와 NesC Tiny OS Part1. Won Mi Sun – 17 지능제어 연구실.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
컴퓨터 시스템 하드웨어 컴퓨터 시스템 소프트웨어 C P U Control Unit 입 력 장 치 출 력 장 치 ALU
3. 운영체제의 발전 과정 제 2세대 (1960년대 초기) – 다중 프로그래밍, 다중 처리, 시분할 시스템
04. DBMS 개요 명지대학교 ICT 융합대학 김정호.
ARM Development Suite v1.2
2 네트워크 모델 학습 목표 모듈 개념을 알아보고 계층 구조의 필요성을 이해한다.
ATmega128의 특징 아이티즌 기술연구소
Voice and Videoconferencing
운영체제 1장 이성연.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
뇌를 자극하는 Solaris bible.
DK-128 직렬통신 실습 아이티즌 기술연구소
AT MEGA 128 기초와 응용 I 기본적인 구조.
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
3과목 운영체제 강사 이 민 욱.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
5.2.3 교환방식의 비교 학습내용 교환방식의 비교.
4. 셸을 이용한 명령어 입력. Unix 시스템 쉘 간단한 셸 명령 명령 매개변수(Command arguments)
System Security Operating System.
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
06. 디바이스의 등록과 해제 김진홍
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
학부 컴퓨터공학부 교육과정 (학부) 2학년 4학년 3학년 1학년 1학기 2학기 IPP 자격과정 전공트랙
과 목 명 : 운영체제 담당교수 : 박 승 기 학 과 : 컴퓨터 소프트웨어 학 번 : 이 름 : 최 현 식
CHAP 15. 데이터 스토리지.
2. 프로세스 B 안우진 - 운영체제 -.
ARP.
Presentation transcript:

제 3 장 운영체제 구조 3.1 시스템 구성 3.1.1 프로세스 관리 프로그램 : 디스크에 저장, 수동적 프로세스 : 실행중(program counter 차지)인 프로그램 (1) 시스템의 작업 단위 (2) 한 프로그램이 여러 프로세스 생성(spawn) 가능 fork system call 시스템은 OS 프로세스와 사용자 프로세스의 집합 (3) CPU 다중화(multiplexing)에 의해 병행 수행 가능

OS에 의한 프로세스 관리 프로세스의 생성과 제거 프로세스의 중지와 재수행 프로세스 동기화 기법 제공 프로세스간 통신 기법 제공 교착상태 방지 기법 제공

3.1.2 주기억장치 관리 OS에 의한 기억장치 관리 프로그램은 주기억 장치에 있어야 실행 가능 절대 주소로 사상되어 적재 여러 프로그램 적재 : CPU 효율과 반응시간 향상 hardware의 구조와 밀접한 연관 (OS ↔ hardware) OS에 의한 기억장치 관리 어디를 사용? 누가 사용? 어떤 프로세스를 새로 적재? 기억 공간의 할당과 회수

3.1.3 파일 관리 파일: a uniform logical view(unit) of information storage OS가 저장 장치의 물리적 매체로 사상 편의상 디렉토리로 관리 OS에 의한 파일 관리 파일과 디렉토리의 생성과 제거 관리를 위한 프리미티브 제공 보조 기억장치로 사상 백업

3.1.4 I/O 시스템 관리 I/O 시스템의 구성 요소 다양한 하드웨어 장치의 특성을 사용자에게 숨김 기억장치 관리 요소(버퍼링, 캐싱, 스풀링) 일반적인 장치 구동기 인터페이스 특정 하드웨어 장치(디스크)들을 위한 구동기

3.1.5 보조 기억장치 관리 OS에 의한 보조기억장치 관리 보조 기억장치는 사용 빈도가 매우 높다 주기억장치는 작고 휘발성(volatile) 보조기억장치 : 프로그램과 데이터를 영구 보관 OS에 의한 보조기억장치 관리 빈 공간(free space) 관리 저장 장소(storage) 할당 디스크 스케쥴링 보조 기억장치는 사용 빈도가 매우 높다 모든 프로그램을 저장 시스템 전체 동작 속도와 밀접한 관련

3.1.8 명령 해석기(Command Interpreter) 시스템 3.1.6 네트워킹 분산 시스템 메모리와 clock을 공유하지 않는 시스템들의 집합체 heterogeneous 3.1.7 보호 시스템 다중 사용자, 다중 프로세스 환경에 절대적 다른 사용자에 의한 침해를 방지(파일, 메모리, CPU) 3.1.8 명령 해석기(Command Interpreter) 시스템 사용자와 OS 사이의 인터페이스 역할 command-line interpreter 또는 shell 등으로 불림 kernel의 일부 혹은 하나의 special program (command.com / csh / windows and menu system)

3.2 운영체제 서비스 프로그램 수행 I/O 동작 파일 시스템 조작 사용자의 편의를 위한 서비스 메모리에 적재, 실행, 완료 => 효율과 안전 파일 시스템 조작 판독, 기록, 생성, 삭제

통신 프로세스간 통신 오류 탐지(Error detection) 자원 할당 동일 컴퓨터 내 vs. 다른 컴퓨터간 shared memory, message passing 오류 탐지(Error detection) divide-by-zero, overflow, 기억장소 침범, CPU 과다 사용 네트워크 접속 오류, 프린터 종이 부족 자원 할당 CPU, 메인 메모리, 파일 시스템=>특수한 할당 코드 I/O 장치=>일반적 코드(여러 장치에 적용) 사용자와 장치의 관계를 테이블로 기록

회계(accounting) 보호(protection) 기록 보관 : 사용료 청구, 통계 사용 중인 자원에 대한 다른 사용자 혹은 외부의 침입을 방어 (security) 인증(authentication)

3.3. 시스템 호출(System Calls) 프로세스와 OS의 인터페이스 제공 매개변수 전달 방식 주요 범주 예: file copy ( A to B ) 각 단계는 각기 다른 시스템 호출 파일명 입력 - 파일들 열기 - 읽기 - 쓰기 - 닫기 - 보고 매개변수 전달 방식 레지스터, 테이블 + 주소레지스터, 스택 주요 범주 프로세스 제어 생성, 적재(load), 수행 , 기억장치 할당 및 해제, 사건 대기&신호, 취소, 종료, 속성 설정 부가 정보 : 덤프, 추적, 시간 프로필

파일 조작 장치 조작 정보 유지보수 통신 생성-삭제, 개방-폐쇄, 판독-기록-재배치, 속성 설정 요구-해제, 부착-제거, 판독-기록-재배치, 속성 설정 정보 유지보수 시간, 일자 설정-획득 시스템 자료 설정-획득 : 사용자수, OS 버전, 가용 기억 장소 및 디스크 공간 프로세스, 파일, 장치 속성의 설정-획득 통신 연결 생성-제거, 메시지 송수신, 상태정보 전달 원격 장치의 부착 및 제거

프로세스와 작업 제어 비정상 종료 : 오류 보고-덤프, 오류 수준 사용 새 프로세스 생성 덤프, 추적(trace) 시간 프로필 우선순위 등의 속성 설정, 사건 대기-신호 덤프, 추적(trace) 프로그램 수정 시간 프로필 타이머 인터럽트 : 통계

* MS-DOS *UNIX 단일 태스킹, TSR(terminate and stay resident) 쉘 -> fork() -> exec() 시스템 호출 : 자식 프로세스 생성-적재 백그라운드 실행 : 쉘이 다른 입력 가능 쉘을 통해 사용자가 프로세스의 속성 조정 가능

통신 메시지 전달 모델 : OS에 의존하는 방식 공유 기억장치 모델 : 자율적 방식 소량의 자료, 충돌 위험이 없다, 구현이 간편 연결 설정 get hostid, get processid, open connection, close connection demon : 특수 목적 프로세스, 연결 위한 대기(wait) read message, write message 공유 기억장치 모델 : 자율적 방식 map-memory 호출 빠르지만, 보호가 필요 (동시 접근 방지)

3.4 시스템 프로그램(System Programs) OS와 응용 프로그램의 중간 계층 시스템 호출 사용자 인터페이스 + … 범주 파일 조작, 상태 정보, 파일 수정(편집기), 프로그래밍 언어 지원(컴파일러, …), 적재-수행 통신 : 원격 파일 전송, 원격 로그인, 전자 우편, 대화... 통계 패키지, DB 패키지, 스프레드 쉬트, 웹브라우저

명령 해석기 : 가장 중요한 시스템 프로그램 방식 1) 명령 해석기 자체에 실행 코드 : 시스템 호출 방식 2) 여러 시스템 프로그램으로 구현 : 적재만 대행 해석기가 작아진다, 기능 추가 용이 문제점 매개 변수(가변) 전달과 시스템 프로그램의 적재 시간 일관성, 호환성 : 여러 시스템 프로그래머가 작성

3.5 시스템 구조 현대 OS의 설계 : 적절한 기능 + 쉬운 변경 태스크를 분할, 각 모듈의 명확한 입출력 및 기능 *MS-DOS : 분할 부족, 보호 부족, 이중 모드 없음 *UNIX : 여러 버전으로 발전하면서 기능 분할 (그림 3.7) *Mach : 마이크로 커널

3.5.2 계층적 접근(Layered Approach) 모듈화 사용자(응용) 입장 : 보다 많은 제어 구현자 입장 : 자유스러운 변경 명확한 인터페이스-정보 은폐(information hiding) 계층화가 가장 대표적인 방식 계층 계층은 추상적인 객체의 구현 : 자료 캡슐화 + 동작 각 계층은 자신의 하위 계층 연산들만을 사용 how는 알 필요 없고, what만 알면 된다 검증, 오류 수정 용이(상향식으로), 설계-구현이 간단

유의사항 사례 : OS/2 신중한 계획 효율성 MS-DOS의 후손 : 계층화 CPU 스케쥴러 <-> 예비 기억장치(디스크) 구동기 효율성 각 계층간 상호작용 오버헤드 자료 전달(매개 변수 수정 등) 사례 : OS/2 MS-DOS의 후손 : 계층화

3.6 가상 기계 (Virtual Machine) 기본 컴퓨터의 (가상) 사본을 여러 프로세스에 제공 하드웨어 자체와 동일한 인터페이스를 제공 h/w 명령수준(not 커널 수준)에서 다중 프로그래밍 CPU 스케쥴링, 가상 기억장치 기법 미니 디스크 (디스크를 분할하여 사용) 각 프로세스는 자신만의 전용 처리기, 전용 기억장치를 보유한 것으로 착각(illusion) 크게 보아 두 부분으로 설계를 효율적으로 분할 사용자 지원 (커널) <-> h/w 명령 지원 (가상 기계)

3.6.1 구현 3.6.2 장점 구현의 복잡도와 속도(전반적으로 느려짐)가 문제 완전한 보호, 그러나 공유는 불가 소형 디스크 공유, 가상 통신 네트워크로 해결 시스템 개발 용이 가상 기계상에서 시스템 개발 개발 과정에서 타 시스템에 영향 없음 호환성 SUN 시스템에 Intel 가상 기계를 둔다 : MS-DOS 수행

3.6.3 자바(Java) Sun Microsystems사 자바 가상 기계(JVM)에서 실행 JVM은 여러 종류의 기계에서 실행 가능 (Mac…) 웹브라우저 안에서도 실행 객체지향형 기능 : 안전, 이식 가능

3.7.1 설계 목표 3.7.2 메커니즘 및 정책 하드웨어 선택과 시스템 선택(일괄처리…) 설계 이상의 요구사항: 사용자 목적과 시스템 목적 이해도, 신뢰성, 신속성, 적응성, 효율성, … 일반적 해법 없음 몇 가지 일반적 원칙 : 소프트웨어 공학 3.7.2 메커니즘 및 정책 메커니즘(how)과 정책(what)을 분리하는 것이 바람직 : 일반적 메커니즘 마이크로 커널 <-> 애플 매킨토시 원시 빌딩블럭 메커니즘+정책 : 암호화

3.7.3 구현 어셈블리어 혹은 고급언어 고급언어 구현 병목(bottleneck) 루틴 장점 : 이식성, 간결(빨리 작성, 수정 용이) 단점 : 느리고 기억 장치를 많이 쓴다 UNIX, OS/2, 윈도우즈/NT : C로 작성 (MS-DOS는 어셈블리어로 작성) 병목(bottleneck) 루틴 기억장치 관리, CPU 스케쥴링 어셈블리어로 대치 가능

3.8 시스템 생성(System Generation) 시스템 생성(SYSGEN) 각 특정 컴퓨터 사이트를 위해 OS를 구성, 생성 h/w 시스템 정보 판독 CPU, 가용 기억장치 크기, 주변 장치(번호, 인터럽트번호, 형태…), 요구되는 스케쥴링 알고리즘… OS를 컴파일 -> 목적 버전 부트스트랩 프로그램 ROM에 저장 커널을 찾아 적재하는 역할 2 단계 적재 가능