2 minute read

소개

운영체제의 필요성

초창기의 컴퓨터는 정해진 계산만 수행했기 때문에 특별한 사용 규칙이 필요하지 않았으나, 요구하는 기능들이 많아지고 복잡해지며 규칙이 필요해졌다. 이를 위해 등장한것이 운영체제이다.

운영체제가 없는 기계는 만들 당시에 구현한 기능 외 다른 기능을 추가하거나 성능을 향상할 수 없기 때문에, 정해진 계산만 가능하다. 반면, 운영체제가 있는 기계는 운영체제를 통해 새로운 기능의 추가나 성능의 변경이 가능하므로 성능 및 효율성의 향상을 꾀할 수 있다. => 프로그래밍이 가능한 기계

운영체제의 정의

운영체제는 컴퓨터 시스템의 하드웨어, 소프트웨어적인 자원을 효율적으로 운영 및 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있게 하는 시스템 소프트웨어이다.

운영체제의 역할

  1. 자원 관리 : 여러 응용 프로그램에서 자원을 요청하면 적절한 순서로 배분 및 회수해 효율적으로 관리한다. (효율성)
  2. 자원 보호 : CPU, 메모리 등에 대해 유저와 응용 프로그램의 직접 접근을 제한한다. (안정성)
  3. 하드웨어 인터페이스 제공 : 각기 다른 구성으로 되어있는 마우스, 키보드와 같은 장치들을 간편하게 사용할 수 있도록 하드웨어 인터페이스를 제공한다. (확장성)
  4. 소프트웨어 인터페이스 제공 : 사용자가 운영체제를 편리하게 사용하기 위해 제공되며, 마우스나 터치스크린 등을 통해 제공되는 기능들을 의미한다. (편리성)

운영체제의 구조

커널

  • 운영체제의 핵심 서비스(프로세스 관리, 메모리 관리, 저장장치 관리)를 담당
  • 운영체제의 성능과 이용 양상이 달라진다.
  • 커널 내부에 시스템 호출과 드라이버가 존재한다.
    • 드라이버 : 하드웨어의 인터페이스 역할을 수행한다.

시스템 호출

  • 커널을 보호하기 위한 인터페이스
  • 커널상에서 자원에 대한 직접적인 접근을 제한하고 있으므로, 자원을 이용하기 위해서는 시스템 호출을 사용해야 한다.
  • 사용자 프로그램에서 운영체제 서비스를 제공받기 위해 커널 모드로 전환하는 방법이다.
  • 일종의 (소프트웨어) 인터럽트

시스템 호출은 다음과 같은 과정을 거쳐 이용된다.

  1. 시스템 호출 실행 : 하드 디스크에 데이터를 저장하는 시스템 호출을 발생시켜 커널 모드로 전환
  2. 운영체제 코드 실행 : 커널을 통해 하드 디스크에 데이터를 저장하는 코드 실행
  3. 시스템 호출 복귀 : 하드 디스크에 접근이 끝나면 다시 사용자 모드로 복귀해 실행을 계속해나간다.

프로세스

개념

  • 실행 중인 프로그램을 의미
  • 컴퓨터의 OS상에서 하나의 작업 단위를 의미한다.

프로세스 제어 블록

  • 프로세스를 처리하는데 필요한 다양한 정보가 들어있는 블록
  • 프로세스 생성시 생성되며 프로세스가 실행을 완료하면 폐기된다.
  • 운영체제 영역에 만들어진다.

프로세스 상태

  • 생성, 준비, 실행, 대기, 보류 준비, 보류 대기 등의 프로세스 상태가 프로세스 제어 블록(이하 PCB)에 저장된다.
  • 생성 상태 : OS로부터 PCB를 할당받은 상태
  • 준비 상태 : PCB는 준비 큐에서 기다리며, CPU 스케쥴러에 의해 관리되는 상태
    • dispatch : 준비중인 프로세스가 실행 상태로 전환되는 것
    • time out : 프로세스에 할당된 작업 시간(타임 퀀텀) 내에 작업을 끝내지 못해 다시 준비 상태로 돌아가는 것
  • 대기 상태 : 실행 상태에 있는 프로세스가 입출력을 요청하면 입출력이 완료될 때까지 대기하는 상태
  • 실행 상태 : 프로세스가 CPU를 할당받아 실행 중인 상태
  • 완료 상태 : 프로세스가 종료되는 상태. 운영체제가 PCB와 프로세스가 사용한 메모리를 정리한다.

프로세스 문맥 교환

  • 기존 프로세스가 나가고 새로운 프로세스를 받아들이는 작업이다.
  • 이러한 프로세스 간 전환 작업을 위해, 기억해야 할 정보를 문맥(context)라 하며 이 정보는 프로세스의 PCB에 저장되어 있다.
  • 한 프로세스가 주어진 시간을 다 사용하거나 인터럽트가 걸렸을 때 발생한다.

Leave a comment