Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Similar presentations


Ads by Google