[컴퓨터과학개론] 운영체제 -2
운영체제의 개념
운영체제의 개요
-
컴퓨터 하드웨어와 응용 프로그램(프로그래머) 혹은 컴퓨터 사용자 사이의 인터페이스를 제공하는 시스템 소프트웨어
-
사용자 측면에서는 하드웨어에 대한 지식이 없어도 하드웨어에 접근하고 사용할 수 있는 하드웨어 사용의 편리성을 제공함
-
시스템 측면(개발자 측면)에서는 제한적인 컴퓨터 자원을 효율적으로 사용하기 위한 컴퓨터 자원 관리의 효율성을 제공함
### 운영체제 역할
- 관리대상 자원 범주
- 프로세서 관리자 (CPU)
- 주기억장치 관리자 (RAM)
- 장치 관리자 (프린터, 키보드 등)
- 파일 관리자
- 프로세서 관리자 (CPU)
- 프로세서 관리자(CPU)의 역할
- 프로세스에게 프로세서(중앙처리장치-CPU)를 할당함
- 프로세스를 위한 중앙처리장치의 할당과 관리를 담당하고, 이를 위해 각 프로세스의 상태를 모니터링 함
- 프로세스에게 중앙처리장치의 할당이 필요한 경우를 찾아내고 효율적인 관리를 위해 프로세스의 실행상태를 변화시키기도 함
- 프로세스에게 프로세서(중앙처리장치-CPU)를 할당함
- 주기억장치 관리자(RAM)의 역할
- 프로세스에게 주기억장치를 할당하고 프로세스로부터 할당된 주기억장치를 회수함
- 제한된 주기억장치를 여러 프로세스가 나누어 사용하기 위해 효율적인 주기억장치의 관리가 필요함
- 주기억장치 관리자도 주기억장치를 할당 받고 상주하면서, 주기억장치 관리자에 의해서 보호되고 관리됨
- 프로세스에게 주기억장치를 할당하고 프로세스로부터 할당된 주기억장치를 회수함
- 장치 관리자의 역할
- 시스템 개발자에 의해 구현된 운영체제의 스케줄링 기법에[ 따라 비디오 디스플레이, 키보드, 프린터, 디스크 드라이브와 같은 시스템의 모든 장치를 가장 효율적으로 관리하고 동작 시킴
- 프로세스에게 할당된 장치를 반환하여 다른 프로세스가 사용할 수 있도록 함
- 시스템 개발자에 의해 구현된 운영체제의 스케줄링 기법에[ 따라 비디오 디스플레이, 키보드, 프린터, 디스크 드라이브와 같은 시스템의 모든 장치를 가장 효율적으로 관리하고 동작 시킴
- 파일 관리자의 역할
- 컴파일러, 인터프리터와 같은 시스템 프로그램과 각종 응용 프로그램, 그리고 데이터 파일 등의 모든 파일에 대한 읽기와 쓰기 동작을 관리 함
- 파일에 대한 프로세스의 접근을 관리하여 데이터 보호를 보장함
- 파일을 위한 컴퓨터 자원의 할당과 회수 등을 수행함
- 컴파일러, 인터프리터와 같은 시스템 프로그램과 각종 응용 프로그램, 그리고 데이터 파일 등의 모든 파일에 대한 읽기와 쓰기 동작을 관리 함
운영체제의 작업 처리 방식
일괄처리 시스템
- 작업 간 전환을 줄여 컴퓨터 시스템을 최대한 활용하기 위하여 일괄처리 방식이 등장함
- 일괄처리 시스템은 처리할 작업이 발생할 때마다 즉각적으로 처리하지 않고 처리해야 할 작업이 일정량에 도달할 때까지 여러 작업을 모아 놓음
-
이렇게 모아져 있는 작업을 정해진 시기 이후에 한꺼번에 처리하는 방식
- 컴퓨터 시스템 사용의 효율성은 높일 수 있었으나 작업의 결과를 빠르게 확인할 수 없는 단점이 존재
다중프로그래밍 시스템
- 여러 개의 프로그램을 효울적으로 실행시키기 위해 컴퓨터의 여러 자원을 관리함
- CPU를 사용하고 있는 작업 A가 CPU의 사용을 멈추고 입출력 장치를 사용하게 되면, 아무도 사용하지 않는 CPU를 다른 작업 B에게 할당함
-
입출력 장치의 사용을 완료한 작업 A가 다시 CPU를 요청하면, CPU를 사용하고 있는 다른 작업이 입출력 장치를 사용해서 CPU가 사용되지 않을 때 작업 A에게 CPU가 할당됨
- 여러개의 프로그램들이 컴퓨터 자원이 쉬는 시간에 서로 양보하며 사용하는 방식을 이용하여 작업들을 처리할 수 있다면 컴퓨터 자원의 사용을 최적화시킬 수 있음
-
기본적으로 처리 속도가 느린 입출력 장치와 처리속도가 빠른 CPU의 속도 차리를 이용하여 컴퓨터 자원의 활용도와 처리능력을 증대시킴
- 주기억장치에 여러 개의 작업(프로그램)이 동시에 존재하면서 주변장치(입출력 장치, 네트워크 장치 등)가 사용되는 동안 CPU가 다른 작업에 할당되는 개념으로 1960년 중반에 등장함
시분할 처리 시스템
- 대화식 작업에서 사용자와 컴퓨터는 네트워크를 통해 상호작용을 하므로 컴퓨터가 사용자의 요구를 빠르게 처리해줘야 함
-
동시적인 대화식 사용자의 다중 프로그래밍을 위해서 개발된 것이 바로 시분할 처리 시스템임
- CPU의 시간을 일정 간격의 작은 시간으로 쪼개서 각 사용자에게 시간 간격이 할당되고, 그 동안 직접 컴퓨터와 대화식으로 작업을 수행할 수 있도록 개발됨
-
많은 사용자들이 동시에 컴퓨터를 공유하면서도 각 사용자들은 자기 혼자 컴퓨터를 사용하고 있는 것과 같은 서비스를 받게 됨
- 기억장치 관리, 디스크 스케줄링, 실행중인 작업 간의 통신, 입출력 장치의 사용에 대한 제어 및 관리 등의 복잡한 기능들이 요구되고, 이에 따라 운영체제는 점점 복잡해짐
- 컴퓨터 자원의 효율성은 더욱 높아지고 컴퓨터 사용에 대한 만족도가 높아지게 됨