운영체제(Operating System, OS)란?
1. 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든
소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
2. 사용자 또는 어플리케이션에게 하드웨어를 제어할 수 있도록 인터페이스 제공하는 소프트웨어
3. 하드웨어를 관라하는 소프트웨어
운영체제의 예시
ex) Unix, Linux, macOS, windows
유닉스의 특징
- 최소한의 커널 구조
- 확장성이 넓다
- 소스 코드 공개(오픈소스)
- 다양한 버전 ( ex: Linux)
운영체제의 역할
- 하드웨어 관리: 여러 어플리케이션이 하드웨어를 효율적으로 사용하도록 관리
- 하드웨어 보호: 악의적이거나 미숙한 사용자로부터 하드웨어 보호
- 하드웨어 인터페이스 제공: 악의적이거나 미숙한 사용자로부터 일관된 방법으로 다룰 수 있도록 인터페이스 제공
- 사용자 인터페이스 제공: 사용자가 편리하게 이용하도록 gui, cui 어플리케이션 제공
처리 방식
1. time sharing(시분할 시스템)
cpu 사용 시간을 잘게 쪼개서 task(작업)들에게 나누어 줌.

2. real time OS(실시간 처리)
정해진 시간 안에 어떠한 일이 반드시 보장됨이 보장되어야 하는
실시간시스템을 위한 OS
deadline까지 무조건 작업을 완료해야 함.
ex) 미사일 제어, 반도체 장비, 원자로/공장 제어 등
디스크 스케줄링
- 어떻게 하면 헤더의 움직을 최소화하면서 빨리 일을 처리할 수 있을까?
디스크를 접근할려면 disk header가 움직이면서 데이터를 읽는다.
메모리와는 특성이 조금 다르다(핵심은 disk header)
디스크는 들어온 요청들(read, write)들을 처리하는데,
이 때 요청(interrupt)중에 헤드에 가까운 요청이 있을 경우, 바록 나중에 요청했지만
순서를 바꾸어서 먼저 업무를 처리한다( ==> 디스크헤더의 이동을 줄이는 방법)
disk는 헤더가 움직이는 시간이 가장 적게하는게 중요하다(시간소모가 가장 큼)
가장 좋은 예시
ex) 엘리베이터, 이동방향으로 갈 때 가는 길목에 다른 승객이 기다린다면 같이 타고 이동
운영체제의 구조
OS: 커널 + 어플리케이션
커널(Kernel)
하드웨어 관리
- (memory, process, file system, I/O, IPC) 관리
- system call 제공: 어플리케이션이 커널을 통해 하드웨어를 제어할 수 있는 함수
- system call 예시: open(), read(), write(), fork(), exec(), wait(), exit()
- 사용자 or 어플리케이션은 system call을 통해서만 하드웨어를 제어할 수 있음.
- 커널이 하드웨어를 제어하는데 사용되는 프로그램인 디바이스 드라이버를 포함

system call(시스템 콜)
어플리케이션과 커널의 인터페이스
- 커널이 제공하는 하드웨어(CPU, 메모리, 마우스 모니터, HDD 등) 사용과 연관된 함수
- 어플리케이션이 커널을 통해 하드웨어를 제어할 수 있도록 하는 커널에 요청하는 함수
- 어플리케이션, 유틸리티, 라이브러리는 내부적으로 시스템 콜을 사용하여 커널의 기능을 이용

device driver(디바이스 드라이버)
- 커널과 하드웨어의 인터페이스
- 커널이 하드웨어를 제어하는데 사용하는 소프트웨어
- 간단한 하드웨어(키보드, 마우스)의 디바이스 드라이버는 커널에 포함
- 복잡한 하드웨어(그래픽 카드, 프린터)의 디바이스 드라이버는 제작자가 제공

운영체제(Operating System, OS)란?
1. 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든
소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
2. 사용자 또는 어플리케이션에게 하드웨어를 제어할 수 있도록 인터페이스 제공하는 소프트웨어
3. 하드웨어를 관라하는 소프트웨어
운영체제의 예시
ex) Unix, Linux, macOS, windows
유닉스의 특징
- 최소한의 커널 구조
- 확장성이 넓다
- 소스 코드 공개(오픈소스)
- 다양한 버전 ( ex: Linux)
운영체제의 역할
- 하드웨어 관리: 여러 어플리케이션이 하드웨어를 효율적으로 사용하도록 관리
- 하드웨어 보호: 악의적이거나 미숙한 사용자로부터 하드웨어 보호
- 하드웨어 인터페이스 제공: 악의적이거나 미숙한 사용자로부터 일관된 방법으로 다룰 수 있도록 인터페이스 제공
- 사용자 인터페이스 제공: 사용자가 편리하게 이용하도록 gui, cui 어플리케이션 제공
처리 방식
1. time sharing(시분할 시스템)
cpu 사용 시간을 잘게 쪼개서 task(작업)들에게 나누어 줌.

2. real time OS(실시간 처리)
정해진 시간 안에 어떠한 일이 반드시 보장됨이 보장되어야 하는
실시간시스템을 위한 OS
deadline까지 무조건 작업을 완료해야 함.
ex) 미사일 제어, 반도체 장비, 원자로/공장 제어 등
디스크 스케줄링
- 어떻게 하면 헤더의 움직을 최소화하면서 빨리 일을 처리할 수 있을까?
디스크를 접근할려면 disk header가 움직이면서 데이터를 읽는다.
메모리와는 특성이 조금 다르다(핵심은 disk header)
디스크는 들어온 요청들(read, write)들을 처리하는데,
이 때 요청(interrupt)중에 헤드에 가까운 요청이 있을 경우, 바록 나중에 요청했지만
순서를 바꾸어서 먼저 업무를 처리한다( ==> 디스크헤더의 이동을 줄이는 방법)
disk는 헤더가 움직이는 시간이 가장 적게하는게 중요하다(시간소모가 가장 큼)
가장 좋은 예시
ex) 엘리베이터, 이동방향으로 갈 때 가는 길목에 다른 승객이 기다린다면 같이 타고 이동
운영체제의 구조
OS: 커널 + 어플리케이션
커널(Kernel)
하드웨어 관리
- (memory, process, file system, I/O, IPC) 관리
- system call 제공: 어플리케이션이 커널을 통해 하드웨어를 제어할 수 있는 함수
- system call 예시: open(), read(), write(), fork(), exec(), wait(), exit()
- 사용자 or 어플리케이션은 system call을 통해서만 하드웨어를 제어할 수 있음.
- 커널이 하드웨어를 제어하는데 사용되는 프로그램인 디바이스 드라이버를 포함

system call(시스템 콜)
어플리케이션과 커널의 인터페이스
- 커널이 제공하는 하드웨어(CPU, 메모리, 마우스 모니터, HDD 등) 사용과 연관된 함수
- 어플리케이션이 커널을 통해 하드웨어를 제어할 수 있도록 하는 커널에 요청하는 함수
- 어플리케이션, 유틸리티, 라이브러리는 내부적으로 시스템 콜을 사용하여 커널의 기능을 이용

device driver(디바이스 드라이버)
- 커널과 하드웨어의 인터페이스
- 커널이 하드웨어를 제어하는데 사용하는 소프트웨어
- 간단한 하드웨어(키보드, 마우스)의 디바이스 드라이버는 커널에 포함
- 복잡한 하드웨어(그래픽 카드, 프린터)의 디바이스 드라이버는 제작자가 제공
