[Back-end] 운영체제(OS)

Geun·2022년 3월 5일
0

Back-end

목록 보기
14/74

운영체제(Operating System)

운영체제는 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어다.
우리가 일반적으로 컴퓨터를 사용하면서 실행한 모든 프로그램들은 운영체제에서 관리하고 제어한다.
대표적으로 Windows, Mac OS, IOS 가 있다.

운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공해 준다.

운영체제의 목적

운영체제를 사용하는 목적

  • 컴퓨터의 하드웨어를 관리하는 것
  • 처리능력 향상
  • 사용 가능도 향상
  • 신뢰도 향상
  • 반환 시간 단축

등의 이유가 있다.

컴퓨터에는 CPU, 메모리, 디스크, 키보드, 마우스, 모니터, 네트워크 등 많은 하드웨어가 있으며 이를 잘 관리해 주어야 컴퓨터를 효율적으로 사용할 수 있다.
운영체제의 성능이 좋을수록 컴퓨터의 성능도 좋아진다고 말할 수 있다.
처리능력, 반환시간, 사용가능도, 신뢰도는 운영체제의 성능을 평가하는 기준이 된다.

  • 처리능력(Throughput) : 일정 시간 내에 시스템이 처리하는 일의 양
  • 반환시간(Trun Around Time) : 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
  • 사용가능도(Availability) : 시스템을 사용할 필요가 있을 때 즉시 사용가능한 정도
  • 신뢰도(Reliability) : 시스템이 주어진 문제를 정확하게 해결하는 정도

정리해보면, 운영체제는 컴퓨터의 성능을 높이고 사용자에게 편의성을 제공하기 위한 컴퓨터 하드웨어를 관리하는 프로그램이다.

부팅

컴퓨터의 구조를 단순화한 그림은 다음과 같다.

Processor는 일반적으로 CPU를 말한다.
Main Memory는 ROM과 RAM으로 나뉘어있다.

  • ROM : 비휘발성으로 메모리에서 극히 일부를 차지한다. (수KB)
  • RAM : 휘발성으로 메모리의 대부분을 차지, 실제 프로그램이 할당되는 곳이다. (MB ~ GB)

ROM은 하드디스크처럼 비휘발성으로 전원이 꺼져도 그 안의 내용이 유지된다.
RAM은 휘발성이므로 전원이 꺼지면 메모리안의 모든 내용이 삭제된다.

컴퓨터의 전원이 켜지면 Processor(CPU)에서 ROM에 있는 내용을 읽는다. ROM 안에는 POST(Power-On Self-Test), 부트로더(Boot Loader)가 저장되어 있다.
POST는 전원이 켜지면 가장 처음에 실행되는 프로그램으로 현재 컴퓨터의 상태를 검사한다.
POST 작업이 끝나면 부트로더가 실행된다. 부트로더는 하드디스크에 저장되어 있는 운영체제를 찾아 메인 메모리(RAM)에 가지고 온다.
이런 부트로더의 과정을 부팅이라고 부른다.


부트로더가 진행하는 모습이다. 이런 상태가 되면 운영체제가 수행할 준비를 마친 것이다.
운영체제가 종료되는 때는 컴퓨터의 전원이 꺼지는 시점이다.

운영체제는 크게 커널(kernel)과 명령어 해석기(Command Interpreter, shell)로 나뉜다.

커널은 운영체제의 핵심으로 운영체제가 수행하는 모든 것이 저장되어 있다.
명령어 해석기(shell)은 사용자가 커널(운영체제)에 요청하는 명령어를 해석하여 커널에 요청하고 그 결과를 출력해준다.

사용자는 GUI(Graphical User Interfacve)나 CLI(Command Line Interface)와 같은 방식으로 운영체제에 명령을 요청할 수 있다.

운영체제의 위치

사용자 프로그램(Application)은 특정 운영체제에 맞추어 만든다. 이런 이유로 한 애플리케이션은 지금과 다른 운영체제에서 수행될 수 없다.

애플리케이션은 운영체제 위에서 수행한다. 하드웨어 자원을 직접적으로 사용않고, 운영체제가 제공하는 자원만 사용할 수 있다.

운영체제가 하는 일은 다음과 같다.

  • 프로세스 관리 : 프로세스 스케줄링 및 동기화 관리, 프로세스 생성과 제거, 시작과 정지, 메세지 전달 등의 기능
  • 기억장치 관리 : 프로세스에게 메모리 할당 및 회수 관리
  • 주변장치 관리 : 입출력 장치 스케줄링 및 전반적인 관리
  • 파일 관리 : 파일의 생성과 삭제, 변경, 유지 등의 관리

참고자료

codemcd님 velog
https://coding-factory.tistory.com/300

0개의 댓글