본문 바로가기

Computer Science/Operation System

[운영체제/OS] Operating System Overview - 컴도리돌이

728x90
728x90

operation system services

 

  • 운영체제의 주요 서비스는 하드웨어 자원을 각 사용자 애플리케이션에 적절히 분배해주는 것이다. 하드웨어 자원은 CPU, 메인 메모리, 입출력 장치 등이 존재하며, 이러한 하드웨어 자원을 사용자 애플리케이션이 요구하거나 운영체제 내의 규칙에 의해 적절히 분배하여 컴퓨터 성능을 최대한 효율 적으로 사용해야 한다.

운영체제 내에서는 각 하드웨어를 관리하는 기능

프로세스 관리(Process Management)

기억 장치 관리(Memory Management)

저장 공간 관리(Storage Management)

입출력 장치 관리(I/O deviece Management)

시스템 콜(System Call)


운영체제 정의(Operating System Definition)

  • 사용자가 응용 프로그램을 실행할 수 있는 기반 환경을 제공하여 컴퓨터를 편리하게 사용할 수 있도록 도와주고, 하드웨어를 효율적으로 사용할 수 있도록 다양한 기능을 제공하는 소프트웨어이다.
  • 자원 할당자(resource allocator) : 컴퓨터 시스템의 자원을 공정하고 효율적으로 분배하기 위해 자원 할당자 역할을 한다.
  • 프로그램 제어(control program) : 다른 프로그램이 작업을 할 수 있는 환경만 제공하는 컨트롤러의 역할을 한다. 컴퓨터 시스템을 부적절하게 사용하거나 오류 발생을 방지한다.

운영체제 구조(Operating System Structure)

  • 멀티프로그래밍(Multiprogramming) : 컴퓨터에서 하나의 프로그램이 메모리에 올라가면 하나의 프로그램만 CPU가 처리를 진행할 수 있다. 이 과정에서 프로세서의 처리 속도와 입출력 속도 간의 차이로 인해, 입출력이 완료될 때까지 프로세서는 idle 한 상태가 된다. 따라서 이는 프로세서의 '자원 낭비'로 이루어지기 때문에 프로세서가 입출력 작업의 종료를 대기할 동안 하나의 프로세서에서 다른 프로그램을 수행할 수 있도록 만든 것이 '멀티프로그래밍'이다.
  • 멀티 태스킹(Multi-tasking, Time sharing) : 'task'란 운영체제에서 처리하는 작업의 단위 또는 정해진 일을 수행하기 위한 명령어 집합인데, 멀티 태스킹은 'task'를 OS의 스케쥴링에 의해 번갈아가며 수행하는 것(Swapping)을 의미한다. 

프로세스 관리(Process Management)

  • 프로세스(Process) : 프로세스는 실행 중인 프로그램이다. 하드디스크에 있는 프로그램이 메인 메모리로 적재되어 있을 때 프로세스라고 부른다. 프로세스에서는 다섯 가지의 상태 중 하나의 상태에 존재한다. 자세한 내용은 후에 다루자.
  • 컴퓨터가 실행되면 아직 대부분의 프로그램들은 하드디스크에 보관이 되어있다. 그러다 우리가 더블 클릭을 하거나 다른 동작을 하여 프로그램을 실행하게 되면 하드디스크에서 프로그램이 메모리로 옮겨지게 된다. 그러면 프로세스가 되는 것이다. 운영체제는 이렇게 올라온 프로세스에게 CPU를 할당해야 한다. CPU는 하나이기 때문에 어떤 프로세스를 실행시킬지는 운영체제가 결정을 한다. 따라서 프로세스 관리자(Process Management)가 CPU의 스케쥴링을 해주는 역할을 한다.

Process Mangement Activities(프로세스 관리자의 역할)

  • 사용자 및 시스템 프로세스 생성 및 삭제
  • 프로세스 일시 중지 및 재개
  • 프로세스 동기화를 위한 메커니즘 제공
  • 프로세스 통신을 위한 메커니즘 제공
  • 교착 상태 처리를 위한 메커니즘 제공

메모리 관리(Memory Management)

  • 운영체제는 프로그램에게 메모리 공간을 할당하고 다시 하드디스크로 보내주는 역할을 수행한다. 메모리의 공간이 한정되어 있으므로 프로세스를 잘 적재하는 것도 중요한 역할이 된다.
  • CPU는 오직 메인 메모리에 있는 프로그램(프로세스)하고만 소통할 수 있다. 주기억장치 관리에서는 메인 메모리를 효율적으로 사용하도록 관리한다.

저장 공간 관리(Storage Management)

  • 운영체제는 inforamtion storage에 대한 일관되고 논리적 view를 제공해야 한다. 물리적 속성을 논리적 ㅅ토리지 유닛 파일로 추상화한다. 각 매체는 장치에 의해 제어되며 접근 속도, 용량, 데이터 전송률, 접근 방법, 파일 시스템 관리 등 다양한 속성을 제어한다.
  • 파일 관리자(file management) : 파일이라고 하는 것은 track으로 구성된 디스크를 논리적 관점으로 표현한 것이며, 파일을 생성하고 삭제, 디렉터리 생성, 삭제 등 파일에 관련된 역할을 수행하는 것도 운영체제에서 한다.
  • 파일은 운영체제가 실행되는 컴퓨터에서 자주 볼 수 있는데, 이는 복잡한 과정으로 하드디스크에 저장되어 있는 것을 사용자가 편리하게 사용할 수 있도록 파일이라는 논리적 형태로 운영체제에서 관리하여 보여준다.

파일 시스템 관리 활동(file-system management activites)

  • 파일의 생성과 삭제
  • 디렉터리의 생성과 삭제
  • 기본 동작 지원
  • file 간의 매핑(mapping)
  • 백업(Backup)

입출력 관리(I/O Subsystem)

  • 장치 드라이브나 입출력 장치의 성능 향상을 위한 역할을 수행한다. 프로세스가 입출력의 사용이 필요하면 적절하게 연결해주는 역할을 한다. 이외에도 운영체제는 보호나 네트워크 등 하는 역할이 많이 있다. 하지만 중요한 것은 프로세스 관리와 메모리 관리 부분이다.
  • 입출력 장치는 느리기 때문에 느린 기능을 만해해 주는 소프트웨어적 기능을 제공해준다. 예를 들면 버퍼링, 스풀링, 캐싱 등이 있다.

System Calls

  • 시스템 콜(System call)은 유저 프로세스에서 운영체제 서비스를 필요로 할 때 이를 받기 위해 사용하는 호출이다.

 

728x90
728x90