운영체제(Operating System)

1 minute read

Summary

운영체제에 대해 알아본다.

운영체제(Operating System, OS)

사용자가 컴퓨터를 사용하는 데 필요한 소프트웨어.
일반적으로 컴퓨터에서 사용하고 실행하는 프로그램들은 운영체제에서 관리하고 제어한다.
컴퓨터의 성능을 높이고 사용자에게 편의성 제공을 목적으로 하는 컴퓨터 하드웨어를 관리하는 프로그램

  • 예) Windows, Linux, Mac OSX, iOS
  • 컴퓨터의 하드웨어를 효율적으로 관리하는 것1
    • 컴퓨터 하드웨어: CPU, 메모리, 디스크, 키보드, 마우스, 모니터, 네트워크 등
    • 컴퓨터의 성능(performance)을 높인다.
  • 사용자에게 편의를 제공하는 것(convenience)
    • 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있는 환경을 제공한다.
    • 시스템의 생산성을 높여준다.

목적

  • 처리능력(throughput) 향상 2
    • 시스템의 생산성, 일정 시간 동안 처리하는 양을 늘린다.
  • 응답시간(turnaround time) 최소화
  • 신뢰도(reliability) 향상
    • 주어진 문제를 정확하게 처리한다.
  • 사용 가능도(availability) 향상
    • 시스템을 빠르게 사용할 수 있게 한다.

부팅(Booting)

computer structure
컴퓨터 구조

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

  • ROM: 비휘발성. 하드디스크처럼 전원이 꺼져도 그 안의 내용이 계속 유지된다.
  • RAM: 휘발성. 전원이 꺼지면 메모리 안의 모든 내용이 지워진다.
    • 메모리의 대부분을 차지하며, 실제 프로그램이 할당되는 곳

computer structure after booting

컴퓨터의 전원이 켜지면 프로세서(CPU)에서 ROM에 있는 내용을 읽는다.
ROM 안에는 POST(Power-On Self-Test), 부트 로더(boot loader)가 저장되어 있다.

  • POST: 전원이 켜지면 가장 처음에 실행되는 프로그램. 현재 컴퓨터의 상태를 검사한다.
  • 부트 로더: POST 작업이 끝나면 실행된다. 하드디스크에 저장된 운영체제를 찾아서 메인 메모리(RAM)에 가지고 온다. 이 부트 로더의 과정을 부팅이라고 한다.

위 사진과 같이 부팅이 끝나면 운영체제가 수행할 준비를 마친 것이다. 컴퓨터의 전원이 꺼지면 운영체제가 종료한다.

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

  • 커널
    • 운영체제의 핵심
    • 운영체제가 수행하는 모든 것이 저장되어 있다.
  • 명령어 해석기
    • 사용자가 커널(운영체제)에 요청하는 명령어를 해석해 커널에 요청하고 그 결과를 출력한다.
    • 사용자는 GUI나 CLI 같은 방식으로 운영체제에 명령을 요청할 수 있다.
      요청 예) 현재 디렉터리의 파일 리스트 불러오기, 프로그램 실행하기, 디스크 용량 확인

위치

사용자 프로그램(application)은 운영체제에 맞춰서 만든다. Windows에서 수행하는 프로그램을 Linux에 옮기면 수행되지 않는다.

애플리케이션은 운영체제 위에서 수행한다.

  • 애플리케이션은 하드웨어 자원을 직접 사용하지 않고 운영체제가 제공하는 자원만을 사용할 수 있다.

기능

  • 하드웨어 자원(프로세스, 메모리, 하드디스크 등)과 네트워크를 관리, 제어한다.
  • 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공한다.
  • 자원 관리를 위해 기능이 나뉘어 있다.
    • 프로세스 관리, 메모리 관리, 디스크 관리, 네트워크, 보안 등

    • 프로세스 관리: 프로세스 스케줄링 및 동기화, 프로세스 생성,제거,시작,정지, 메시지 전달 등 기능3
    • 기억장치 관리: 프로세스에게 메모리 할당 및 회수
    • 주변장치 관리: 입 출력 장치 스케줄링 및 전반적인 관리
    • 파일 관리: 파일의 생성, 삭제, 변경, 유지 등
  • 여러 애플리케이션 요청에 따라 각 기능들을 수행하여 적절히 자원을 분배한다.
  • 시스템의 오류를 검사하고 복구한다.
  • 자원 보호 기능을 제공한다.
  • 입 출력에 대한 보조 기능을 제공한다.
  • 사용자와 시스템간의 편리한 인터페이스를 제공한다.

자세한 내용은 이 포스트를 참고하면 된다.

References

Categories:

Updated:

Leave a comment