제 1 장 운영 체제의 개요 Section 1 운영 체제의 개념 Section 2 운영 체제의 구성과 기능
사람 대신에 컴퓨터 시스템의 각종 자원을 효율적으로 관리하고 운영함으로써, 사용자에게 최대의 편리성을 Section 1 운영체제의 개념 운영체제 정의 사람 대신에 컴퓨터 시스템의 각종 자원을 효율적으로 관리하고 운영함으로써, 사용자에게 최대의 편리성을 제공하도록 하기 위한 컴퓨터 하드웨어와 사용자간의 인터페이스를 담당하는 시스템 소프트웨어 컴퓨터 시스템의 구성요소 ● 하드웨어 자원 ● 운영 체제 ●시스템 프로그램 ● 응용 프로그램 ● 최종 사용자
Section 1 운영체제의 개념 컴퓨터 시스템 5가지 구성요소 그림 1-1 컴퓨터시스템 구성요소
1. 운영 체제의 목적 Section 1 운영체제의 개념 ● 처리 능력(Throughput)의 향상 ● 반환 시간(Turn-around time)의 최소화 ● 사용 가능도(Availability) 향상 ● 신뢰도(Reliability) 향상
2. 운영 체제의 역할 부팅(Booting) 저장 매체 관리 사용자 인터페이스 컴퓨터 자원 관리 Section 1 운영체제의 개념 2. 운영 체제의 역할 부팅(Booting) 저장 매체 관리 사용자 인터페이스 컴퓨터 자원 관리 파일 관리 태스크 및 프로세스 관리 그림 1-2 부팅 작업 처리과정
2. 운영 체제의 역할 사용자 인터페이스 Section 1 운영체제의 개념 그림 1-4 메뉴 사용 예 사용자 인터페이스 그림 1-4 메뉴 사용 예 그림 1-3 DOS 사용 예
Section 1 운영체제의 개념 2. 운영 체제의 역할 컴퓨터 자원 관리 슈퍼바이저 또는 커널(kernel)은 자원 추상화(resource abstraction)와 자원 공유(resource sharing) 기법을 통해 응용프로그램을 관리 그림 1-5 자원 추상화 예
2. 운영 체제의 역할 ● 다중 프로그래밍(multi-programming) Section 1 운영체제의 개념 2. 운영 체제의 역할 태스크 및 프로세스 관리 ● 다중 프로그래밍(multi-programming) ● 시분할 시스템(time sharing system) ● 다중 처리(multiprocessing) ● 가상기억 장치(virtual memory)
3. 운영 체제와 다른 프로그램과의 관계 ● 운영체제는 다른 시스 템 소프트웨어나 응용 소프트웨어를 사용하는 Section 1 운영체제의 개념 3. 운영 체제와 다른 프로그램과의 관계 ● 운영체제는 다른 시스 템 소프트웨어나 응용 소프트웨어를 사용하는 인터페이스를 제공하기 위해 하드웨어와 직접 상호작용 ● 이들 하드웨어 자원과 상호작용을 결정하기 위해 자원 추상화를 제공 그림 1-6 운영체제와 다른 프로그램의 상관 관계
4. 운영 체제의 발달과정 1) 제 1 세대(1940년대) 2) 제 2 세대(1950년대) 자동적으로 처리. Section 1 운영체제의 개념 4. 운영 체제의 발달과정 1) 제 1 세대(1940년대) ● 기계어를 직접 사용. ● 운영 체제가 없음 2) 제 2 세대(1950년대) ● 진공관, 코어 메모리를 사용함. ● 작업 제어 언어(JCL)가 등장. ● 초기 일괄 처리 시스템의 효시. ● 한 작업으로부터 다른 작업으로의 전환을 자동적으로 처리. ● 입출력 제어 시스템이 제공. ● 기계어나 어셈블리어를 사용.
3) 제 3 세대(1965~1980) (virtual memory), 다중 프로그래밍(multi-programming), Section 1 운영체제의 개념 3) 제 3 세대(1965~1980) ● 트랜지스터, IC(집적회로), 디스크를 사용하기 시작. ● 공유 시스템(shared system), 가상 기억 장치 (virtual memory), 다중 프로그래밍(multi-programming), 다중 처리(multi-processing) 가 개발. ● 장치 독립성 : 입출력 장치의 형태적 특성에 관계 없이 입출력 동작 을 요청할 수 있는 능력. ● 다중 모드 시스템(multi mode system) 등장 : 일괄 처리, 시분할 처 리, 실시간 처리, 다중 처리 등을 제공. ● 소프트웨어 계층 구조 개념과 소프트웨어 공학 (software engineering)이 등장 ● 시스템의 처리 능력을 증진시키기 위해 한 컴퓨터 시스템에 여러 개의 프로세스(process)들이 사용. 시분할 시스템 : 사용자들과 컴퓨터가 대화식으로 운영되어 사용 자의 요구 사항을 가능한 한 빨리 처리하여 터미널로 응답 실시간 시스템 : 공정 제어용으로 사용되면서 발전하여 상황 변화 에 즉각적인 반응조치가 가능.
4) 제 4 세대(1980 ∼ 1990) 프로세서 등장으로 PC 개발이 촉진. Section 1 운영체제의 개념 ● LSI, VLSI를 사용. ● 컴퓨터 네트워크와 온라인(on line) 처리 기법 사용, 마이크로 프로세서 등장으로 PC 개발이 촉진. ● 가상 기계(virtual machine) : 여러 개의 운영 체제를 탑재하여 하나의 기계를 여러 개의 기계처럼 보이게 함. ● 데이터 베이스 시스템(data base system) 등장: 정보를 가질 수 있는 사용자 간에 정보를 공유. ● 분산 데이터 처리(distributed data processing) 개념 확립: 데이터가 컴퓨터 시스템 전체에 분산되게 하여 각 데이타 항목은 그 데이터가 가장 자주 쓰이는 곳에 위치하며, 다른 곳의 사용자는 네트워크로 접근. ● 편리한 사용자 시스템(user friendly system)들이 개발. ● PC 운영체제인 윈도우(window)가 개발 ● 워크스테이션(workstation), 다중 프로세서(multiprocessor)가 일반화
5) 제 5 세대(1990년대 후반 ∼ 현재) ● ULSI, 조셉슨 소자, 칼륨-비소 소자, 광 소자를 사용. Section 1 운영체제의 개념 5) 제 5 세대(1990년대 후반 ∼ 현재) ● ULSI, 조셉슨 소자, 칼륨-비소 소자, 광 소자를 사용. ● 분산계산 시스템이 실용화. ● 지식 기반(knowledge base) 시스템이 등장. ● 인공지능(artificial intelligence)이 실현. ● 논리, 추론 등 유추기능이 강화. ● 자연어 인터페이스를 사용하여 인간과 기계의 대화 (human computer interface)기능이 실현. ● 인문. 사회. 자연과학 특히, 산업공학, 환경공학, 생물공학, 전기전자공학 등 분야와 정보기술(IT: Information Technology)의 융합
Section 2 운영체제의 구성과 기능 1. 운영 체제의 구성 그림1-7 운영체제의 구성
2. 운영 체제의 기능 1) 자원 관리자의 관점 Section 2 운영체제의 구성과 기능 자원에 대한 관리자의 수행 과정. ● 자원의 상태를 추적, 기억. ● 어떤 CPU가 언제 어떤 자원을 얼마나 취할 것인가를 결정하기 위한 정책 수립. ● 자원을 할당. ● 자원을 회수. 그림1-8 운영체제의 구성 요소와 자원의 상관관계
1) 자원 관리자의 관점 (1) 프로세스 관리 기능 ● 프로세스 스케줄러: 어떤 작업에게 CPU를 사용하도록 할 것인지를 결정 Section 2 운영체제의 구성과 기능 1) 자원 관리자의 관점 (1) 프로세스 관리 기능 ● 프로세스 스케줄러: 어떤 작업에게 CPU를 사용하도록 할 것인지를 결정 ● 프로세스 관리자는 프로세스, 스레드 관리를 포함하여 프로세서 (CPU), 여러 추상화된 자원들의 관리를 책임지며, 주기억장치를 관리하기 위해 기억장치 관리자와 협력 ● 프로세스가 수행을 마치거나, 사용이 양도되거나 또는 시간을 초과하였을 경우 CPU를 회수. 그림1-9 프로세스 관리자
1) 자원 관리자의 관점 (2) 기억 장치 관리 기능 ● 기억장치 관리자는 주기억장치를 관리하기 위해 Section 2 운영체제의 구성과 기능 1) 자원 관리자의 관점 (2) 기억 장치 관리 기능 ● 기억장치 관리자는 주기억장치를 관리하기 위해 프로세스 관리자와 협력하며, 가상기억 장치 및 페이징 장치를 관리하기 위해 장치 관리자나 파일관리자와 협력 ● 어느 프로세스에게 언제 얼마나 기억 장치를 할당할 것인지 결정. ● 프로세스가 기억장치를 요구하면 기억장치를 할당. ● 프로세스가 더 이상 기억 장치를 필요로 하지 않으면 기억장치를 프로세스로부터 회수. 그림1-10 기억장치 관리자
1) 자원 관리자의 관점 (3) 장치 관리 기능 ● 채널 등의 제어 장치 및 입출력 장치와 같은 각종 장치의 상태를 Section 2 운영체제의 구성과 기능 1) 자원 관리자의 관점 (3) 장치 관리 기능 ● 채널 등의 제어 장치 및 입출력 장치와 같은 각종 장치의 상태를 추적, 기억 ● 장치 관리자는 파일 관리자와 응 용 프로세스에게 서비스를 제공 하며, 하나의 장치 독립적인 부분 과 각 주변장치마다 하나씩 장치 의존적인 부분으로 구성. ● 장치 의존적인 부분은 장치 독립 부분에 서비스를 전송하면, 장치 독립적인 부분은 모든 장치에 대 해 단일화된 인터페이스를 제공 그림1-11 장치 관리자
1) 자원 관리자의 관점 (4) 정보 관리 기능 ● 정보의 위치, 사용여부 및 상태 등을 추적, 관리-> 파일 시스템. Section 2 운영체제의 구성과 기능 1) 자원 관리자의 관점 (4) 정보 관리 기능 ● 정보의 위치, 사용여부 및 상태 등을 추적, 관리-> 파일 시스템. ● 어떤 작업에게 정보 자원을 사용하도록 할 것인지를 결정. ● 프로세스에게 정보 자원을 할당. ● 프로세스로부터 정보 자원을 회수.
2. 운영 체제의 기능 2) 프로세스 관점 프로세스 관점은 운영 체제를 프로세스의 상태로 Section 2 운영체제의 구성과 기능 2. 운영 체제의 기능 2) 프로세스 관점 프로세스 관점은 운영 체제를 프로세스의 상태로 변화시키는 프로그램으로 보는 것을 말함. ● 제시 상태 ● 보류 상태 ● 준비 상태 ● 실행 상태 ● 대기 상태 ● 완료 상태 그림1-12 프로세스의 상태 모형
3) 계층 구조 관점 계층구조 관점은 운영 체제를 계층적인 상호관계를 가지는 프로그램 모듈들의 집합으로 보는 것. Section 2 운영체제의 구성과 기능 3) 계층 구조 관점 계층구조 관점은 운영 체제를 계층적인 상호관계를 가지는 프로그램 모듈들의 집합으로 보는 것. ● 커널 기능(nucleus function) : 운영 체제와 사용자를 위한 기계어 제공 및 커널 기능에 의한 기타 많은 능력을 제공 함으로서 추가 능력을 부여. ● 계층적 설계 이유 : 오류 교정, 수정 등을 용이하게 하기 위해 사용. 즉, 상위 계층에서 하위 계층으로의 호출만 허용.
Section 2 운영체제의 구성과 기능 3) 계층 구조 관점 그림 1-13 계층구조 관점에서의 운영체제
운영체제 서비스 기능간의 상호 관계 Section 3 운영체제 서비스 그림 1-14 운영체제가 제공하는 기능간의 상호작용 관계
1) 프로그램 수행(program execution) 시스템은 프로그램을 주기억 장치에 적재하여 실행할 수 Section 3 운영체제 서비스 1) 프로그램 수행(program execution) 시스템은 프로그램을 주기억 장치에 적재하여 실행할 수 있어야 하고, 운영체제는 프로그램들이 정상적이든 혹은 비 정상적이든 실행을 끝낼 수 있는 방법을 제공 2) 입출력 동작(I/O operation) 수행중인 프로그램은 입출력을 요구하면 화일 혹은 입출력 장치가 지정됨. 특정 장치들에 대해서는 특수한 기능들 (테이프 되감기, CRT 화면 지움등)이 요구될 수 있는데, 사용자 프로그램 대신 운영 체제가 입출력 동작을 하기 위한 방법을 제공. 3) 파일 시스템 조작(file system manipulation) 파일 시스템을 통해 프로그램은 파일을 읽고 기록해야 되며, 또한 이름에 의하여 파일을 생성하고 삭제할 수 있어야 함.
한 프로세스가 다른 프로세스와 정보를 교환하는 방법 제공. Section 3 운영체제 서비스 4) 통신((communication) 한 프로세스가 다른 프로세스와 정보를 교환하는 방법 제공. 통신은 공유 메모리(shared memory)나 메시지 패싱(message passing) 방식에 의하여 구현될 수 있는데, 정보의 단위인 패킷 (packet)들이 운영 체제에 의하여 프로세스들 사이를 이동. 5) 오류 발견(error detection) 운영 체제는 모든 가능한 오류들을 항상 탐지기능제공. 오류는 CPU, 기억장치 하드웨어(기억장치 메모리 오류, 정전), 입출력 장치(패리티 오류, 카드 판독기에서 카드 체증(jam), 프린터의 종이 부족이나, 종이 체증(jam)), 또는 사용자 프로 그램(연산상의 오버플로우, 부적당한 기억장소에 접근하려는 시도, 지나친 CPU 시간 초과 사용)등
6) 자원 할당(resource allocation) 다수의 사용자나 다수의 작업이 동시에 실행될 때, Section 3 운영체제 서비스 6) 자원 할당(resource allocation) 다수의 사용자나 다수의 작업이 동시에 실행될 때, 자원들은 각각 그들에게 할당. 여러 종류의 자원들은 운영 체제에 의하여 관리. 7) 보호(protection) 보호는 시스템 호출을 위해 전달된 모든 매개 변수의 타당성을 위한 검사와 시스템 자원에 대한 모든 접근을 제어하도록 보장하는 일을 포함. 8) 계정(accounting) 시스템 관리자는 어떤 사용자가 어떤 종류의 컴퓨터 자원을 얼마나 많이 사용하고 있는지 사용통계를 수집, 기록 보관