운영체제
- 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층
- 모든 컴퓨터 시스템의 필수적인 부분
- 강의 목표 : 운영체제의 개념과 역할, 운영체제를 구성하는 각 요소 및 그 알고리즘의 핵심적인 부분에 대해 기초부터 학습
(1) 운영체제와 소프트웨어 또는 사용자와 어떻게 상호작용?
(2) 하드웨어를 어떻게 인터페이스 해야하는지?
운영 체제의 목표
- 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공
- 컴퓨터 시스템의 자원을 효율적으로 관리(프로세서, 기억장치, 입출력 장치 등등)
ex. 자원이 부족할 경우, 실행중인 프로그램들에게 짧은 시간의 CPU 할당
ex. 실행중인 프로그램들에 메모리 공간을 적절히 분배
운영체제 소개
좁은 의미의 운영체제
- 커널(Kernel)
- 운영체제의 핵심 부분으로 메모리에 상주하는 부분
- 주로 운영체제를 뜻하는 것은 이 부분
넓은 의미의 운영체제
- 커널을 포함해서, 각종 주변 시스템 유틸리티를 포함한 개념
운영 체제의 분류
(1) 동시 작업 가능 여부
- 단일 작업(single tasking) : 한 번에 하나의 작업만 처리, MS-DOS
- 다중 작업(multi tasking) : 동시에 두 개 이상의 작업 처리, UNIX, MS Windows
(2) 사용자의 수
- 동시에 접속할 수 있는지? 여부
- 단일 사용자(single user) : MS-DOS, MS Windows
- 다중 사용자(multi user) : UNIX, NT server
(3) 처리 방식
- 일괄 처리(batch processing)
-> 작업 요청을 모아서 한꺼번에 처리, 작업이 완전 종료 되기 전까지 기다려야 한다.
-> 한 번 돌아갈 때마다 시간이 오래 걸리기 때문에, 작업이 오류가 나지 않는 것이 중요했다.
- 시분할(time sharing)
-> 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할
-> 일괄 처리보다 빠른 응답 시간
-> interactive
- 실시간(RealTime OS)
-> (데드라인)정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 한다.
-> hard realtime system(경성 실시간 시스템)
-> soft realtime system(연성 실시간 시스템)
용어 정리
- Multitasking : 하나의 프로그램이 종료되기전에 다른 프로그램이 실행되는 것
- Multiprogramming : 여러 프로그램이 메모리에 올라가 있는 것을 강조
- Time sharing : CPU를 분할하여 나누어 쓰는 의미 강조
- Multiprocess : 하나의 컴퓨터에 CPU(processor)가 여러 개 붙어 있는 것을 의미
운영 체제의 예시
유닉스(UNIX)
- 대형 컴퓨터를 위해 만들어짐 -> multitasking
- 유닉스를 만들기 위한 C 언어 등장 / 높은 이식성(portability) / 최소한의 커널(운영체제) 구조
DOS(Disk Operating System)
- MS사에서 만든 단일 사용자용 운영체제
- 메모리 관리 능력의 한계(주 기억 장치 : 640KB)
MS Windows
- MS사의 다중 작업용 GUI 기반 운영체제
- Plug and Play, 네트워크 환경 강화
- 불안정성
- 풍부한 자원 소프트웨어
운영 체제의 구조
CPU 스케줄링
- 누구한테 CPU를 줄 것인지?
- 처리시간이 긴 것들을 먼저 처리하는 것보다 빠른 것을 먼저 처리하면 평균 속도가 줄어든다.
메모리 관리
- 한정된 메모리를 어떻게 쪼개서 쓸 것인지?
- 어떤 메모리를 내보낼 것인지?
파일 관리
- 디스크에 파일을 어떻게 보관할 것인지?
입출력 관리
- 각기 다른 입출력 장치와 컴퓨터 간에 어떻게 정보를 주고 받게 할 것인지?
- 인터럽트(interrupt) 사용
'CS > 운영체제' 카테고리의 다른 글
[운영체제] Swap memory 스왑 메모리 (1) | 2023.12.19 |
---|---|
[운영체제] 운영체제 요약 정리 (0) | 2023.07.09 |