운영체제의 개념

운영체제의 개요

  • 컴퓨터 하드웨어와 응용 프로그램(프로그래머) 혹은 컴퓨터 사용자 사이의 인터페이스를 제공하는 시스템 소프트웨어

  • 사용자 측면에서는 하드웨어에 대한 지식이 없어도 하드웨어에 접근하고 사용할 수 있는 하드웨어 사용의 편리성을 제공함

  • 시스템 측면(개발자 측면)에서는 제한적인 컴퓨터 자원을 효율적으로 사용하기 위한 컴퓨터 자원 관리의 효율성을 제공함

### 운영체제 역할

  • 관리대상 자원 범주
    • 프로세서 관리자 (CPU)
    • 주기억장치 관리자 (RAM)
    • 장치 관리자 (프린터, 키보드 등)
    • 파일 관리자

  1. 프로세서 관리자(CPU)의 역할
    • 프로세스에게 프로세서(중앙처리장치-CPU)를 할당함
    • 프로세스를 위한 중앙처리장치의 할당과 관리를 담당하고, 이를 위해 각 프로세스의 상태를 모니터링 함
    • 프로세스에게 중앙처리장치의 할당이 필요한 경우를 찾아내고 효율적인 관리를 위해 프로세스의 실행상태를 변화시키기도 함

  2. 주기억장치 관리자(RAM)의 역할
    • 프로세스에게 주기억장치를 할당하고 프로세스로부터 할당된 주기억장치를 회수함
    • 제한된 주기억장치를 여러 프로세스가 나누어 사용하기 위해 효율적인 주기억장치의 관리가 필요함
    • 주기억장치 관리자도 주기억장치를 할당 받고 상주하면서, 주기억장치 관리자에 의해서 보호되고 관리됨

  3. 장치 관리자의 역할
    • 시스템 개발자에 의해 구현된 운영체제의 스케줄링 기법에[ 따라 비디오 디스플레이, 키보드, 프린터, 디스크 드라이브와 같은 시스템의 모든 장치를 가장 효율적으로 관리하고 동작 시킴
    • 프로세스에게 할당된 장치를 반환하여 다른 프로세스가 사용할 수 있도록 함

  4. 파일 관리자의 역할
    • 컴파일러, 인터프리터와 같은 시스템 프로그램과 각종 응용 프로그램, 그리고 데이터 파일 등의 모든 파일에 대한 읽기와 쓰기 동작을 관리 함
    • 파일에 대한 프로세스의 접근을 관리하여 데이터 보호를 보장함
    • 파일을 위한 컴퓨터 자원의 할당과 회수 등을 수행함

운영체제의 작업 처리 방식

일괄처리 시스템

  • 작업 간 전환을 줄여 컴퓨터 시스템을 최대한 활용하기 위하여 일괄처리 방식이 등장함
  • 일괄처리 시스템은 처리할 작업이 발생할 때마다 즉각적으로 처리하지 않고 처리해야 할 작업이 일정량에 도달할 때까지 여러 작업을 모아 놓음
  • 이렇게 모아져 있는 작업을 정해진 시기 이후에 한꺼번에 처리하는 방식

  • 컴퓨터 시스템 사용의 효율성은 높일 수 있었으나 작업의 결과를 빠르게 확인할 수 없는 단점이 존재

다중프로그래밍 시스템

  • 여러 개의 프로그램을 효울적으로 실행시키기 위해 컴퓨터의 여러 자원을 관리함
  • CPU를 사용하고 있는 작업 A가 CPU의 사용을 멈추고 입출력 장치를 사용하게 되면, 아무도 사용하지 않는 CPU를 다른 작업 B에게 할당함
  • 입출력 장치의 사용을 완료한 작업 A가 다시 CPU를 요청하면, CPU를 사용하고 있는 다른 작업이 입출력 장치를 사용해서 CPU가 사용되지 않을 때 작업 A에게 CPU가 할당됨

  • 여러개의 프로그램들이 컴퓨터 자원이 쉬는 시간에 서로 양보하며 사용하는 방식을 이용하여 작업들을 처리할 수 있다면 컴퓨터 자원의 사용을 최적화시킬 수 있음
  • 기본적으로 처리 속도가 느린 입출력 장치와 처리속도가 빠른 CPU의 속도 차리를 이용하여 컴퓨터 자원의 활용도와 처리능력을 증대시킴

  • 주기억장치에 여러 개의 작업(프로그램)이 동시에 존재하면서 주변장치(입출력 장치, 네트워크 장치 등)가 사용되는 동안 CPU가 다른 작업에 할당되는 개념으로 1960년 중반에 등장함

시분할 처리 시스템

  • 대화식 작업에서 사용자와 컴퓨터는 네트워크를 통해 상호작용을 하므로 컴퓨터가 사용자의 요구를 빠르게 처리해줘야 함
  • 동시적인 대화식 사용자의 다중 프로그래밍을 위해서 개발된 것이 바로 시분할 처리 시스템임

  • CPU의 시간을 일정 간격의 작은 시간으로 쪼개서 각 사용자에게 시간 간격이 할당되고, 그 동안 직접 컴퓨터와 대화식으로 작업을 수행할 수 있도록 개발됨
  • 많은 사용자들이 동시에 컴퓨터를 공유하면서도 각 사용자들은 자기 혼자 컴퓨터를 사용하고 있는 것과 같은 서비스를 받게 됨

  • 기억장치 관리, 디스크 스케줄링, 실행중인 작업 간의 통신, 입출력 장치의 사용에 대한 제어 및 관리 등의 복잡한 기능들이 요구되고, 이에 따라 운영체제는 점점 복잡해짐
  • 컴퓨터 자원의 효율성은 더욱 높아지고 컴퓨터 사용에 대한 만족도가 높아지게 됨

Updated: