도요한 2013. 3. 12. 20:10

운영체제(Operating System) 정의

운영체제(OS : Operating System)란 한정된 컴퓨터 시스템의 자원을 보다 효율적으로 관리하고 운영함으로써 사용자들에게 편의성을 제공하고자 하는 시스템 프로그램으로 인간과 기계 간의 인터페이스(Man-machine interface)역할을 한다.

- 모든 하드웨어와 소프트웨어를 관리하는 컴퓨터 시스템의 실행관리자

- 컴퓨터 사용자와 하드웨어 사이에서 매개체 역할을 하는 프로그램

- 다른 응용 프로그램들이 작업을 할 수 있는 환경을 제공

 사용자 관점

 - 다수의 사용자를 위해 여러 응용프로그램간의 하드웨어 사용을 제어하고 조정함

 시스템 관점

 - 자원 할당자. 요구 자원들을 관리하고 프로그램과 사용자에게 필요한 자원을 할당. (효율성, 공정성)

 - 입출력 장치를 제어하고 프로그램을 제어

 - 자원을 제어하고 할당하는 기능을 하나의 소프트웨어로 통합한 것

 - 모든 하드웨어와 소프트웨어를 관리하는 컴퓨터 시스템의 부분. 실행관리자.

- 컴퓨터 시스템 구성 요소 : 하드웨어, 운영체제, 응용프로그램, 사용자

- 컴퓨터 자원 : CPU(CPU 시간), 메모리 공간, 파일 저장장치, 입출력 장치

- 항상 수행되고 있는 유일한 프로그램. 커널(kernel)이라고 한다.

시스템 구성과 관점(view)

컴퓨터 시스템 구성요소

컴퓨터시스템 계층과 뷰(관점)

 

운영체제의 목적과 기능

 운영체제의 목적 >  < 성능(Performance) 향상 목표>
 편리성  컴퓨터를 보다 편리하게 사용한다

- 처리율 향상(Throughput)

- 응답시간 단축(Turnaround time)

- 이용가능성 향상(Availability)

- 신뢰성 향상

 효율성  컴퓨터 시스템의 자원을 효율적으로 사용할 수 있게 한다
 발전성  효과적인 개발과 점검이 가능하고, 서비스를 방해하지 않으면서 새로운 시스템 기능을 도입할 수 있도록 구축되어야 한다.

- 운영체제는 컴퓨터 하드웨어와 사용자 간의 매개체 역할을 하는 프로그램으로서 사용자에게 편리함을 제공하며, 컴퓨터 시스템의 효율적인 운영을 가능하게 한다.

- 사용자가 프로그램을 수행할 수 있는 환경을 제공하고, 다수의 사용자 또는 응용 프로그램들이 컴퓨터 시스템의 한정된 자원들을 효율적으로 사용하게 하는데 그 목적이 있다.

- 운영체제의 기본적인 기능을 컴퓨터 시스템 자원 관리고 볼 수 있으며 주로 프로세서, 메모리, 주변장치, 파일 등을 관리한다.

- 사용자가 프로그램을 효율적이고 편리하게 실행할 수 있는 환경을 제공하고, 컴퓨터 자원을 공정하고 효율적으로 제공한다.

- 제어프로그램으로 프로그램의 실행을 감독하여 오류와 잘못된 사용을 막고 입출력 장치의 제어와 작동을 관리한다.


운영체제 as 인터페이스

 프로그램 개발

 프로그램 작성을 지원. 에디터, 디버거 등의 서비스는 OS를 통해 접근 할 수 있는 유틸

 프로그램 수행  프로그램 수행을 위해 여러 태스크가 수행될 수 있도록 관리 
 입출력장치 접근

 프로그래머가 읽기/쓰기 관점에서 입출력장치를 사용하도록 세부사항을 처리함. 

 파일접근제어

 파일 제어를 위한 입출력장치의 특징과 매체 상의 파일 형식등 세부사항을 관리.

 (다중 사용자) 접근제어를 위한 보호 기법을 제공

 시스템 접근   시스템 전체 및 특정 시스템 자원에 대한 접근을 제어한다.
 (불법 사용자로부터 자원과 데이터 보호, 동시 사용 제어 및 충돌 문제 해결) 

 에러발견 및 응답

 발생하는 다양한 에러에 수행중인 프로그램에 영향을 최소화하면서 에러조건을 제거할 수 있도록 응답한다. (발생 프로그램의 종료, 재시도, 단순 에러 보고 등)

 계정 관리

 자원에 대한 사용 통계를 수집하고 응답시간 같은  성능을 모니터링한다. 

- 사용자와 컴퓨터 시스템 간의 인터페이스(Interface) 기능을 제공한다.

- 사용자 간의 하드웨어 공동 사용을 허용한다.

- 사용자 간의 데이터를 공유하게 해준다.

- 사용자 간의 자원(프로세서, 메모리, 입출력 장치 등)사용을 스케줄링한다.

- 입출력 역할을 지원한다.

- 컴퓨터 시스템의 오류 처리를 담당한다.


발전 용이성 

; 운영체제는 그 구성이 모듈화되어야 하며 모듈간 인터페이스가 명확히 정의되고 문서화도 잘 되어 있어야 한다.

- 하드웨어 업그레이드와 새로운 하드웨어 (ex. paging, 라인스크롤 터미널)

- 새로운 서비스 

- 수정 : 시간 경과에 따라 발견된 결함을 수정.


운영체제의 구성

운영체제 개념 모형

운영체제의 sub-system 

 서브시스템 관리자의 역할
 1. 자원을 계속 감시한다.
 2. 할당 정책을 수행한다. (누가 무엇을, 언제, 어떻게,  얼마나 가질것인지 결정)

 3. 적절한 때 자원을 할당한다.

 4. 적절한 때 자원을 회수한다.

 

운영체제의 sub-system(networked model)

 

서브시스템의 역할

 서브시스템 역할 
 프로세서 관리자

 각 프로세스의 상태를 추적하고 프로세서를 프로세스에게 어떻게 할당할 것인가를 결정
 - CPU와 프로세스의 상태를 모니터링하고 상태 변화를 처리(상태전이 관리)

  • 작업 스케줄러:시스템에 들어오는 작업들을 처리. 수용하거나 거부함
  • 프로세스 스케줄러:들어온 작업들의 프로세스를 관리. CPU를 얼마나 할당할 것인지 결정
 메모리 관리자

 메모리 공간 요구가 유효한지 확인하고 빈 공간을 할당(allocation portion of memory unused)

  •  multi-user 환경에서는 누가 어느 부분을 사용하는지 테이블을 만들어 확인

  •  운영체제 점유공간을 지킴

 장치 관리자

 시스템의 모든 장치를 가장 효율적으로 할당하는 역할 

  •  모든 장치, 채널과 제어장치(control unit)를 모니터링

  •  장치를 할당하고, 작동을 시작하며, 장치를 반환한다.

 파일 관리자

 시스템의 모든 파일을 모니터링 

  • 각 파일에 대한 사용자의 접근 권한을 통제함
  • 파일 접근 제한 관리, 화일 open, close 등 자원 할당과 회수 수행
  • 데이터 파일, 어셈블러, 컴파일러, 응용프로그램 포함
 네트워크 관리자

사용자들의 자원에 대한 접근을 통제하며 동시에 자원을 공유할 수 있는 방법을 제공

  • 자원들은 하드웨어와 소프트웨어를 포함한다.
  • 네트워크 기능이 있는 운영체제의 필수 요소 

※각 관리자는 다른 관리자들과 조화롭게 작동하여 기능을 수행한다. (다른 관리자의 협조없이는 수행할 수 없다.)


 운영체제 프로그램의 구조

- 제어프로그램 : 작업 감시(Supervisor), 작업 관리(Job control), 자료 관리(Data management)

- 처리프로그램 : 언어번역(Translation), 오류처리, 요구처리(Service)


참고서적

Operating Systems - Internals and Design Principles - 5th (William Stallings)

Operating System Principles - 5th, 7th (A.Silberschatz)

운영체제 (곽덕훈, 백두권 공저, KNOU press)

Understanding Operating Systems - 3th (Flynn, McHoes)