운영체제(OS)에 대한 이해
운영체제(OS)는 프로그램이다. OS는 애플리케이션의 실행을 제어하는 프로그램으로, 애플리케이션을 최소한으로 방해해야 한다. 또한, OS는 애플리케이션과 하드웨어를 연결하는 인터페이스 역할을 한다. 이렇게 함으로써 프로그래머가 하드웨어의 세부 사항을 알 필요가 없게 된다.
User/Computer Interface
운영체제를 통해 I/O 디바이스, CPU, 메모리 등 모든 자원을 관리하여 프로그램들이 이를 효율적이고 공평하게 사용할 수 있도록 한다. 또한, 프로그램 개발을 돕고, 프로그램 실행을 지원하며, I/O 디바이스와 파일 접근을 지원하고, 시스템 접근을 지원한다. 에러를 감지하고 응답하며, 자원 사용량을 기록하여 프로그램 순서를 조정하고 메모리 제공량을 변경하는 등의 기능도 제공한다.
라이브러리와 시스템 콜
데이터를 하드디스크에서 가져올 때는 단위가 있다. 정수 하나만을 가져오는 것이 아니라, 정수가 포함된 한 블럭이 온다. 메모리에 버퍼를 만들어 데이터를 모아두고, 이를 하나씩 가져다주는 역할을 하는 것이 라이브러리이다. 모든 입출력 문장들은 시스템 콜이 아니라 라이브러리 함수로 처리된다. 이 함수 안에서 버퍼 관리를 통해 입출력을 편하게 할 수 있다. 실제 시스템 콜에는 READ와 WRITE 두 개만 존재한다.
Resource Manager
운영체제는 컴퓨터 자원을 관리하는 역할을 한다. 여기에는 I/O, 메인 메모리, 보조 기억장치, 프로세서 실행 시간이 포함된다. 운영체제의 핵심 부분은 커널(Kernel)로, 이는 메인 메모리에 상주하며 꼭 필요한, 자주 사용되는 중요한 부분이다.
운영체제의 진화
Serial Processing
초기 컴퓨터 시스템에서는 한 번에 하나의 프로그램만 실행할 수 있었다. 이런 방식을 Serial Processing이라고 한다.
Simple Batch Systems
A 프로그램이 종료된 후 B 프로그램이 자동으로 시작되어 오퍼레이터가 개입하지 않아도 되는 시스템이다. 이 시스템에서도 여전히 한 번에 하나의 프로그램만 실행할 수 있었다.
UniProgramming
CPU가 한 번에 하나의 프로그램만 실행하는 방식이다. CPU가 I/O 작업이 끝날 때까지 기다려야 하므로 비효율적이다.
MultiProgrammed Batch Systems
여러 프로그램을 메모리에 올려두고, 하나의 프로그램이 I/O 작업을 하는 동안 다른 프로그램을 실행할 수 있는 시스템이다. 이렇게 하면 CPU가 더 효율적으로 사용될 수 있다.
MultiProgramming
하나의 작업이 I/O 작업을 기다리는 동안 CPU가 다른 작업을 할 수 있도록 하는 방식이다. 이를 위해 모든 실행 중인 프로그램이 메모리에 동시에 올라와 있어야 하며, OS가 프로그램의 상태를 저장하고 복구할 수 있어야 한다.
Time Sharing Systems
타임 슬라이스 단위로 시간을 나누고, 한 프로그램이 타임아웃이 될 때까지 실행한 후 다른 프로그램을 실행하는 시스템이다. 여러 프로그램이 동시에 메모리에 올라가 있어야 하며, 프로그램이 I/O 작업을 할 때에도 프로그램이 변경될 수 있다.
Multi Programming과 Time Sharing의 차이
- Multi Programming 시스템: I/O 입출력에 의해 프로그램이 변경된다.
- Time Sharing 시스템: 시간에 의해 프로그램이 변경된다.
이 둘의 주된 목적은 다르다. Multi Programming 시스템은 CPU 사용도를 최대화하는 것이 목표이고, Time Sharing 시스템은 응답 시간을 최소화하는 것이 목표다. 타임 슬라이스 조정이 매우 중요하며, 너무 짧으면 OS가 너무 자주 개입하고, 너무 길면 응답 시간이 길어지는 문제가 발생할 수 있다.
'운영체제' 카테고리의 다른 글
운영체제 Chapter3 3-2 Process (0) | 2024.06.25 |
---|---|
운영체제 Chapter2 2-2 (0) | 2024.06.23 |
운영체제 chapter1 - 2-2 (0) | 2024.06.22 |
운영체제 chapter1 - 2주차 (0) | 2024.06.22 |
운영체제 Chapter 1 - 1주차 (0) | 2024.06.22 |