운영체제 강의노트 정리 - 개요

개요

운영체제

  • 컴퓨터 하드웨어를 관리하는 프로그램
  • 응용프로그램의 토대를 제공해주는 프로그램
  • 컴퓨터의 사용자와 컴퓨터 하드웨어 사이에서 중간 매개체 역할을 해주는 프로그램

운영체제

컴퓨터 시스템은 하드웨어, 운영체제, 응용프로그램, 그리고 사용자로 이루어져 있다.

하드웨어 -> 운영체제 -> 시스템 및 애플리케이션 프로그램 -> 사용자

일반적으로 운영체제는 항상 수행되고 있는 유일한 프로그램, 커널kernel을 말한다.

사용자 관점

컴퓨터의 용도에 따라 운영체제의 설계 방향이 결정된다.

  • 개인용 컴퓨터 : 편리성 우선, 낮은 자원 활용도
  • 메인프레임, 미니컴퓨터 : 높은 자원 활용도
  • 워크스테이션 : 개인 사용성 및 자원 활용도
  • 휴대용 컴퓨터 : 높은 개인 사용성, 자원 절약

시스템 관점

  • 자원 할당자
    • CPU 시간, 메모리 공간, 파일 저장 공간, 입출력 장치 등의 컴퓨터 자원 할당
  • 제어 프로그램
    • 사용자 프로그램의 실행 관리, 오류 및 컴퓨터 오용 방지

운영체제의 목표

사용자에게 편리성을 제공하고, 컴퓨터 시스템의 효율적 운영을 가능하게 한다.

컴퓨터 자원을 할당하며, 이는 공정하고 효율적으로 이루어져야 한다.

제어 프로그램으로 사용자 프로그램의 실행을 감독하여 오류와 컴퓨터 오용을 방지하며, 입출력 장치의 제어 및 동작을 관리한다.

메인프레임 시스템

하나의 사용자가 여러 프로그램을 동시에 수행하는 시스템 / 여러 사용자가 동시에 사용하는 시스템

일괄처리 시스템

초기에 한 번에 하나의 프로그램만이 수행되므로 운영체제의 주 임무는 하나의 작업에서 다음 작업으로 제어를 옮기는 것이었다.

처리 속도를 향상시키기 위해 유사한 요구를 필요로 하는 작업을 함께 모아 일괄 처리batch processing하였다.

기계적 입출력 장치의 속도가 전자적 장치의 속도보다 느려 CPU가 쉬는 경우가 많았다.

이를 해결하기 위해 직접 접근이 가능한 디스크를 도입하였고, 작업 스케줄링 및 다중 프로그래밍이 가능하게 되었다.

다중프로그램 시스템

여러 개의 프로그램을 메모리에 동시 적재하여 하나의 프로그램이 대기 상태가 되면 그 동안 다른 프로그램을 실행한다.

입출력과 프로그램 실행을 병행으로 수행하여 CPU의 사용 효율이 증가한다는 장점이 있다.

여러 개의 프로그램을 병행 수행하기 위해 운영체제는 프로세스 실행을 어떻게 운용할 것인지 결정해야 한다.

  • 작업 스케줄링 : 디스크에 있는 작업 저장소job pool에서 작업을 선택하여 메모리로 옮기는 것
  • CPU 스케줄링 : 실행중인 작업이 대기 상태가 되었을 때 메모리에 있는 작업 중 하나를 선택하여 CPU에 할당하는 것

시분할 시스템

정해진 시간이 되면 무조건 다음 순서의 작업을 실행하는 방식

교대하는 시간이 매우 짧아 프로그램이 실행되는 동안 사용자는 컴퓨터와 상호 작용이 가능하게 되었다.

이러한 시스템을 대화식 컴퓨터 시스템interactive computer system이라고 하며, 응답 시간response time이 짧아야 이를 실현할 수 있다.

시분할 시스템은 여러 사용자가 동시에 컴퓨터를 사용할 수 있게 해준다.

메모리에 적재되어 실행 중인 프로그램을 프로세스라고 한다.

부족한 주기억 장치의 용량 문제를 해결하기 위해 보조 기억 장치를 주기억 장치의 보조 저장 장치로 활용하며, 가장 널리 사용되는 기법은 가상 메모리virtual memory다.

데스크탑 시스템

메인프레임 시스템과는 다르게, CPU의 사용 효율보다는 사용의 편리성에 치중한다.

통신의 발달에 따라 원격에서 파일에 접근할 수 있게 되어, 파일 보호가 필요해졌다.

다중 프로세서 시스템

컴퓨터 버스, 클럭, 메모리 등을 공유하는 둘 이상의 프로세서를 사용하는 시스템.

병렬 시스템이라고도 말한다.

처리율throughput이 증가한다. 하지만 n개의 프로세서를 사용하는 것이 n배의 처리율 증가를 말하지는 않는다.

여러 개의 단일 프로세서 시스템을 사용하는 것보다 다중 프로세서 시스템을 사용하는 것이 경제적으로 저렴하다.

결함 허용fault tolerance에 유리하여 신뢰성이 증가한다.

대칭형 / 비대칭형으로 분류된다.

  • 대칭형 다중처리symmetric multiprocessing : 각 프로세서는 대등한 수준을 가지며, 같은 수준의 일을 한다.
  • 비대칭형 다중처리asymmetrics multiprocessing : 프로세서 간에 주종 관계를 형성하여, 주 프로세서는 작업의 스케줄을 결정하여 종속 프로세서에 작업을 할당한다.

분산 시스템

네트워크를 통해 통신하여 그 기능을 제공한다.

네트워크는 사용하는 프로토콜, 망의 크기(LAN / MAN / WAN), 전송 매체에 따라 분류할 수 있다.

클라이언트-서버 시스템

  • 계산 서버 시스템 : 클라이언트의 요청을 받아 대신 수행한 후 결과를 되돌려 준다.
  • 파일 서버 시스템 : 클라이언트에게 파일 시스템 인터페이스를 제공한다.

집단 시스템

Clustered System

여러 개의 CPU를 사용하며 여러 시스템을 밀결합하여 사용한다.

높은 가용성을 목적으로 한다.

대칭형 / 비대칭형으로 분류한다.

  • 대칭형 : 각 컴퓨터는 응용 프로그램을 수행하는 동시에 다른 컴퓨터의 상태를 감시한다.
  • 비대칭형 : 몇몇은 응용 프로그램을 수행하고, 다른 몇몇은 응용 프로그램을 수행 중인 컴퓨터를 감시한다.

실시간 시스템

Real-time System

프로세서 작동이나 데이터 흐름에 엄격한 시간 제약이 있을 때 사용한다.

보통 특수 목적용으로 사용된다.

  • 엄격한 실시간 시스템hard real-time system : 중요한 작업이 정해진 시간 내에 완료되는 것을 보장한다.
  • 완화된 실시간 시스템soft real-time system : 중요한 작업은 다른 작업보다 우선순위를 가지고 실행되나 정해진 시간 내에 완료되는 것을 보장하지 않는다.

휴대용 시스템

적은 메모리를 가지며, 일반 PC에 비하여 성능이 떨어지고, 작은 디스플레이를 갖는다.

Bluetooth 및 무선 통신 기술을 활용하여 인터넷 접근을 제공한다.

컴퓨팅 환경

초창기 중앙 집중 컴퓨팅 환경에서, 유선 통신 기술이 발달하면서 분산 컴퓨팅 환경이 등장하였다.

최근에는 무선 통신 기술의 발달로 모바일 컴퓨팅 환경이 등장하였다.

IoT와 같은 임베디드 컴퓨팅 환경도 등장하였다. 이러한 환경에 사용되는 운영체제는 가상 메모리와 같은 고급 기능은 제공하지 않는다.