운영체제란 ?
컴퓨터 하드웨어 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
좁은 의미의 운영체제(커널)
- 운영체제의 핵심부분으로 메모리에 상주하는 부분(컴퓨터 전원 on 하면 )
넓은 의미의 운영체제
- 커널 + 각종 유틸리티를 포하한 개념
운영체제의 목적
하드웨어 적 관점
- 컴퓨터시스템의 리소스를 효율적으로 관리(리소스관리자)
- 사용자간의 형평성 있는 자원 분배
- 주어진 리소스로 최대한의 성능을 내도록 - 사용자 및 운영체제 자신의 보호
- 프로세스, 파일, 메세지 등을 관리
유저 적 관점
- 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공
- 하드웨어를 직접 다루는 복잡한 행위를 운영체제가 대행
- 동시 사용자, 동시 프로그램들이 각각 독자적인 컴퓨터에서 수행되는듯한 기능을 선사
*리소스
- 프로세서 = CPU
- 기억장치 = 메모리
- 입출력 장치
공유와 분할
메모리의 경우에는 메모리를 분할하여 각 프로그램의 사용량을 분배하지만
CPU의 경우 짧은 시간 단위로 나누어 시간을 번갈아가면서 할당한다.
효율적인 리소스 관리란?
프로그램이 실행될때 실행하고 나서 유지될때 각자 리소스 소모량이 다르기때문에 우선순위까지 부여하여 효율적인관리를 한다.
균등한 != 효율적인
ex) 프로그램 3개를 가동시킬때 필요한 리소스를 3분할로 나누어쓰는것이 아닌 리소스량에 따라 우선처리에 필요한 리소스를 한쪽으로 투자하여 좀더 빠르고 효율적인 관리를 하는것
운영체제의 분류
운영체제는 아래 3가지로 관점에서 분류를 할 수있다.
- 동시 작업 가능 여부
- 사용자의 수
- 처리 방식
동시작업 여부에 따른 분류
단일 작업(single tasking)
- 한번에 하나의 작업만 처리
- MS-DOS 프롬프트 상에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없음
- 엘리베이터, 자판기들은 기능 자체가 하나기에 single tasking으로 진행한다.
다중 작업(multi tasking)
- 동시에 두개이상의 작업만 처리
- UNIX, MS Windows
- 현대는 대부분 multi tasking이다.
사용자 수에 따른 분류
단일 사용자(single user)
- MS-DOS
다중 사용자(multi user)
- UNIX, NT server
처리방식에 따른 분류
time sharing(시분할 방식)
- 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
- 현대에 대부분 컴퓨터와 핸드폰에 적용되어 있는 방식
- 일괄 처리 시스템에 비해 짧은 응답시간을 가짐
- 한정된 리소스로 최대한 효율적이게 사용하는것이 목적
아주 작은 시간 단위이기에 사람이 느끼기에는 즉각 응답으로 느껴진다.
Realtime OS
- 정해진 시간 안에 어떤한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS
- ex)원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어
* Realtime OS에 개념의 확장
- Hard Realtime System
: Realtime OS가 정상 작동하지 않았을때 그 여파가 큰 시스템(미사일 발사)
- Soft Realtime System
: Realtime OS가 정상 작동하지 않았을때 그 여파가 작은 시스템(영상 랜더링 but 실제로는 시분할 방식을 사용한다.)
batch processing(일괄 처리 방식)
- 요청의 일정량을 모아서 한꺼번에 처리하는 방식
- 작업이 완전히 끝날때까지 기다려야 함
- 현대에는 사용하지 않는 방식
- 결과가 나오는시간까지 오래걸리기에 오류를 잡아내는것 역시 오래걸림
- ex) orm카드, punch card 시스템
컴퓨터가 여러작업을 동시에 진행한다는 의미의 단어들
Multitasking
- 여러작업을 동시에 실행한다는 의미(실제로는 동시에 처리하지 않지만 Time Sharing방식으로 동시에 처리하듯 느껴짐)
MultiProgramming
- 메모리에 여러 프로그램이 올라가있다는것을 강조 (메모리적 관점)
Time Sharing
- CPU의 시간을 시분할 해서 나누어쓴다는것을 강조 (CPU적 관점)
MultiProcess
- 여러프로그램이 동시에 진행된다는 의미
*MultiProcessor
- 하나의 컴퓨터에 여러개의 CPU(Processor)가 붙어있음을 의미한다.
현재 사용되는 운영체제의 예
운영체제의 예
- 대형컴퓨터(서버용) 컴퓨터를 위해 만들어졌다.
- 멀티태스킹, 다중사용자 지원
- 코드의 대부분을 C언어로 작성하였기에 높은 이식성을 가졌다.
- 최소한의 커널구조
- 커널이 커지면 메모리에 부담이 커진다. - 복잡한 시스템에 맞게 확장 용이
- 소스코드 공개(현재는 리눅스만 오픈 소스 이다.)
- 프로그램 개발에 용이
- 다양한 버전
- System V, FreeBSD, SunOS, Solaris
- Linux
DOS(Disk Operating System)
MS사에서 1981년 IBM-PC를 위해 개발
싱글테스킹 & 단일 사용자용 운영체제
메모리 관리 능력의 한계 (주기억 장치가 : 640KB)
하드웨어의 발전속도가 너무 빨라 버그픽스형 OS로 변화하면서 코드가 복잡해졌다.
MS Windows
- MS사의 다중 작업용 GUI 기반 운영 체제
- Plug and Play, 네트워크 환경 강화
- DOS용 응용 프로그램과 호환성 제공
- 불안정성
- 풍부한 자원 소프트웨어
- 개인컴퓨터를 위한 OS
- 초기에는 불안정성이 대두되었지만 현재는 많이 해소가 되었다.
Handheld device를 위한 OS
PalmOS, Pocket PC, Tiny OS
'기초CS > OperationSystem' 카테고리의 다른 글
[OS]System Structure & Program Execution (0) | 2022.08.30 |
---|