기타/OS
운영체제 기초 이론
Dev.BeryL
2022. 8. 17. 09:38
728x90
Operating System Or OS
- 대표적인 운영체제
- Windows OS, Mac OS, UNIX
역할
- 시스템 자원(System Resource) 관리자
- 사용자와 컴퓨터간의 커뮤니케이션 지원
- 응용프로그램 제어
시분할 시스템과 멀티 태스킹
- 응용 프로그램이 CPU를 사용하는 시간을 잘게 쪼개서, 여러 개의 응용 프로그램을 동시에 실행하는 기법
- 시분할 시스템 : 다중 사용자를 지원하고, 컴퓨터 응답 시간을 최소화하는 시스템
- 멀티 태스킹 : 단일 CPU에서, 여러 응용 프로그램의 병렬 실행을 가능케 하는 시스템
- 보통 시분할 시스템 = 멀티 태스킹
*멀티프로그래밍 : 최대한 CPU를 많이 활용하도록 하는 시스템
응용 프로그램, 운영체제, 컴퓨터 하드웨어 관계
- 운영체제는 응용 프로그램이 요청하는 메모리를 허가하고, 분배한다.
- 운영체제는 응용 프로그램이 요청하는 CPU 시간을 제공한다.
- 운영체제는 응용 프로그램이 요청하는 IO Devices 사용을 허가/제어 한다.
쉘(Shell)
- 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램
- 쉘은 터미널 환경(CLI)과, GUI 환경 두 종류로 분류
운영체제는 응용 프로그램을 위해서도 인터페이스를 제공한다.
- API
- 함수로 제공
- open()
- 보통은 라이브러리(library) 형태로 제공
- C library
- 시스템 콜
- 시스템 콜 또는 시스템 호출 인터페이스
- 운영체제가 운영체제 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공
- API 내부에는 시스템콜을 호출하는 형태로 만들어지는 경우가 대부분
CPU Protection Rings
- CPU도 권한 모드라는 것을 가지고 있다
- 사용자 모드(user mode by applications) : 응용프로그램이 사용
- 커널 모드(kernel mode by OS) : 특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근을 가능케 하는 모드, OS가 사용
프로세스 스케쥴링
실제 멀티 태스킹
- 1000 밀리초(ms) = 1초
- 10 ~ 20 ms 단위로도 실행 응용 프로그램이 바뀜
- 사용자에게는 동시에 실행되는 것처럼 보임
프로세스란 ?
Process - 실행 중인 프로그램을 프로세스라 일컫는다.
- 프로세스 : 메모리에 올려져서, 실행 중인 프로그램
- 코드 이미지(바이너리) : 실행 파일, ex) ELF format
FIFO 스케쥴러
| 프로세스가 저장매체를 읽는 다거나, 프린팅을 하는 작업 없이, 쭉 CPU를 처음부터 끝까지 사용한다.
- 가장 간단한 스케쥴러(배치 처리 시스템)
- FCFS (First Come First Served) 스케쥴러
최단 작업 우선(SJF) 스케쥴러
- SJF(Shortest Job First) 스케쥴러
- 가장 프로세스 실행시간이 짧은 프로세스부터 먼저 실행을 시키는 알고리즘
우선순위 기반 스케쥴러
- Priority-Based 스케쥴러
- 정적 우선순위
- 프로세스마다 우선순위를 미리 지정
- 동적 우선순위
- 스케쥴러가 상황에 따라 우선순위를 동적으로 변경
- 정적 우선순위
반응형