운영체제(Operating System)
Summary
운영체제에 대해 알아본다.
운영체제(Operating System, OS)
사용자가 컴퓨터를 사용하는 데 필요한 소프트웨어.
일반적으로 컴퓨터에서 사용하고 실행하는 프로그램들은 운영체제에서 관리하고 제어한다.
컴퓨터의 성능을 높이고 사용자에게 편의성 제공을 목적으로 하는 컴퓨터 하드웨어를 관리하는 프로그램
- 예) Windows, Linux, Mac OSX, iOS
- 컴퓨터의 하드웨어를 효율적으로 관리하는 것1
- 컴퓨터 하드웨어: CPU, 메모리, 디스크, 키보드, 마우스, 모니터, 네트워크 등
- 컴퓨터의 성능(performance)을 높인다.
- 사용자에게 편의를 제공하는 것(convenience)
- 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있는 환경을 제공한다.
- 시스템의 생산성을 높여준다.
목적
- 처리능력(throughput) 향상 2
- 시스템의 생산성, 일정 시간 동안 처리하는 양을 늘린다.
- 응답시간(turnaround time) 최소화
- 신뢰도(reliability) 향상
- 주어진 문제를 정확하게 처리한다.
- 사용 가능도(availability) 향상
- 시스템을 빠르게 사용할 수 있게 한다.
부팅(Booting)

Processor는 일반적으로 CPU를 말한다.
Main memory는 ROM과 RAM으로 나누어져 있다.
- ROM: 비휘발성. 하드디스크처럼 전원이 꺼져도 그 안의 내용이 계속 유지된다.
- RAM: 휘발성. 전원이 꺼지면 메모리 안의 모든 내용이 지워진다.
- 메모리의 대부분을 차지하며, 실제 프로그램이 할당되는 곳
컴퓨터의 전원이 켜지면 프로세서(CPU)에서 ROM에 있는 내용을 읽는다.
ROM 안에는 POST(Power-On Self-Test), 부트 로더(boot loader)가 저장되어 있다.
- POST: 전원이 켜지면 가장 처음에 실행되는 프로그램. 현재 컴퓨터의 상태를 검사한다.
- 부트 로더: POST 작업이 끝나면 실행된다. 하드디스크에 저장된 운영체제를 찾아서 메인 메모리(RAM)에 가지고 온다. 이 부트 로더의 과정을 부팅이라고 한다.
위 사진과 같이 부팅이 끝나면 운영체제가 수행할 준비를 마친 것이다. 컴퓨터의 전원이 꺼지면 운영체제가 종료한다.
운영체제는 커널(kernel)과 명령어 해석기(Command interpreter, shell)로 나뉜다.
- 커널
- 운영체제의 핵심
- 운영체제가 수행하는 모든 것이 저장되어 있다.
- 명령어 해석기
- 사용자가 커널(운영체제)에 요청하는 명령어를 해석해 커널에 요청하고 그 결과를 출력한다.
- 사용자는 GUI나 CLI 같은 방식으로 운영체제에 명령을 요청할 수 있다.
요청 예) 현재 디렉터리의 파일 리스트 불러오기, 프로그램 실행하기, 디스크 용량 확인
위치
사용자 프로그램(application)은 운영체제에 맞춰서 만든다. Windows에서 수행하는 프로그램을 Linux에 옮기면 수행되지 않는다.
애플리케이션은 운영체제 위에서 수행한다.
- 애플리케이션은 하드웨어 자원을 직접 사용하지 않고 운영체제가 제공하는 자원만을 사용할 수 있다.
기능
- 하드웨어 자원(프로세스, 메모리, 하드디스크 등)과 네트워크를 관리, 제어한다.
- 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공한다.
- 자원 관리를 위해 기능이 나뉘어 있다.
-
프로세스 관리, 메모리 관리, 디스크 관리, 네트워크, 보안 등
- 프로세스 관리: 프로세스 스케줄링 및 동기화, 프로세스 생성,제거,시작,정지, 메시지 전달 등 기능3
- 기억장치 관리: 프로세스에게 메모리 할당 및 회수
- 주변장치 관리: 입 출력 장치 스케줄링 및 전반적인 관리
- 파일 관리: 파일의 생성, 삭제, 변경, 유지 등
-
- 여러 애플리케이션 요청에 따라 각 기능들을 수행하여 적절히 자원을 분배한다.
- 시스템의 오류를 검사하고 복구한다.
- 자원 보호 기능을 제공한다.
- 입 출력에 대한 보조 기능을 제공한다.
- 사용자와 시스템간의 편리한 인터페이스를 제공한다.
자세한 내용은 이 포스트를 참고하면 된다.
Leave a comment