728x90
1. 운영체제 개요
모든 레퍼런스는 KOCW - 운영체제 (이화여대 반효경 교수) 입니다.
1. 운영체제란?
운영체제의 의미
좁은 의미의 운영체제 (커널)
- 운영체제의 핵심 부분으로 메모리에 상주하는 부분
넓은 의미의 운영체제
- 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념
운영체제의 목적
1. 컴퓨터 시스템의 자원을 효율적으로 관리
운영체제의 목표 : 컴퓨터 시스템의 자원을 효율적으로 관리
- 자원 : 프로세서, 기억장치, 입출력 장치 등의 효율적 관리
- 사용자간의 형평성 있는 자원 분배
- 주어진 자원으로 최대한의 성능을 내도록 도움
- 사용자 및 운영체제 자신의 보호
- 프로세스, 파일, 메시지 등을 관리
- ex) 실행중인 프로그램들에게 짧은 시간씩 CPU를 번갈아 할당
- ex) 실행중인 프로그램들에 메모리 공간을 적절히 분배
2. 컴퓨터 시스템을 편리하게 사용하게 해줌
컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공
- 운영체제는 동시 사용자 / 프로그램들이 각각 독자적 컴퓨터에서 수행되는 것 같은 환상을 제공
- 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행
운영 체제의 분류
분류 1) 동시 작업 가능 여부
- 단일 작업 (Single Tasking)
- 한 번에 하나의 작업만 처리
- ex) MS-DOS 프롬프트 상에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없음
- 다중 작업 (Multi Tasking)
- 동시에 두 개 이상의 작업 처리
- ex) UNIX, MS Windows 등에서는 한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램을 수행할 수 있음
분류 2) 사용자의 수
- 단일 사용자 (Single User)
- ex) MS-DOS, MS Windows
- 다중 사용자 (Multi User)
- ex) UNIX, NT Server
분류 3) 처리 방식
- 일괄 처리 (Batch Processing)
- 작업 요청의 일정량 모아서 한꺼번에 처리
- 작업이 완전 종료될 때까지 기다려야 함
- ex) 초기 Punch Card 처리 시스템
- 시분할 방식 (Time Sharing)
- 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
- 일괄 처리 시스템에 비해 짧은 응답 시간을 가짐
- Interactive 방식 (입력하자마자 응답하는 형태)
- ex) UNIX
- 실시간 방식 (Realtime OS)
- 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS
- ex) 원자로 / 공장 제어, 미사일 제어, 반도체 장비, 로보트 제어
- 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS
- 실시간 시스템의 개념 확장
- Hard realtime system (경성 실시간 시스템) (데드라인 어기면 치명적인 시스템)
- Soft realtime system (연성 실시간 시스템) (데드라인 어기면 사용자가 불편한 시스템)
용어 정리 (동시 실행)
- MultiTasking : 동시에 작업이 진행되는 것 (실제론 하나 조금 저거 조금 분할해서 실행함)
- Multiprogramming : 멀티태스킹과 비슷한데, 엄밀하게 메모리에 동시에 여러 프로그램이 올라간다는 의미
- Time Sharing : 시간을 공유한다 (CPU의 시간을 공유하여 돌아간다.)
- Multiprocess
넷 다 유사한 의미이다. 하지만 각자 강조하는 바가 조금씩 다르다.
- Multiprocessor : 하나의 컴퓨터에 CPU가 여러 개 붙어 있다는 의미 위의 네가지 용어는 하나의 CPU로 여러 실행을 한다는 의미이지만, 이 멀티프로세서라는 용어는 CPU자체가 여러개가 있어서 물리적으로 각 CPU가 다른 동작을 담당할 수 있다는 것을 의미한다.
수업에선 CPU가 1개임을 가정하고 수업을 한다.
운영 체제의 예
- 유닉스 계열 (UNIX)
- 대형 컴퓨터를 위한 운영체제
- 대부분을 C로 작성
- 높은 이식성
- 최소한의 커널 구조
- 복잡한 시스템에 맞게 확장 용이
- 소스 코드 공개
- 프로그램 개발에 용이
- 다양한 버전 (System V, FreeBSD, SunOS, Solaris, Linux)
- 윈도우 계열
- DOS(Disk Operating System)
- MS사에서 1981년 IBM-PC를 위해 개발
- 단일 사용자용 운영체제, 메모리 관리 능력의 한계(주 기억장치 : 640KB)
- MS Windows
- MS사의 다중 작업용 GUI기반 운영 체제
- Plug and Play, 네트워크 환경 강화
- DOS용 응용 프로그램과 호환성 제공
- 불안정성
- 풍부한 지원 소프트웨어
- Handheld Device를 위한 OS
- PalmOS, Pocket PC (Win CE), Tiny OS
- DOS(Disk Operating System)
운영 체제의 구조
본 과목은 OS 사용자 관점이 아니라 OS 개발자 관점에서 수강해야 함
- 대부분의 알고리즘은 OS 프로그램 자체의 내용
- 인간의 신체가 뇌의 통제를 받듯 컴퓨터 하드웨어는 운영체제의 통제를 받으며 그 운영체제는 사람이 프로그래밍하는 것이다.
- 본인을 Windows XP나 Linux 같은 운영체제라고 생각하고 본인의 할 일이 무엇인지를 생각해 보면 이번 학기 배울 내용이 무엇인지 명확히 알 수 있다.
운영체제의 기능
CPU 스케줄링
- FCFS (First-Come, First-Served)
- 무작정 도착 시간에 따라 큐에 담아 순서대로 처리하는 것
- 효율적인 처리 방법이 아니다 (경우에 따라 전체 평균 대기 시간이 늘어날수있다.)
- SJF (Shortest-Job-First)
- CPU 사용 시간이 가장 짧은 프로세스를 제일 먼저 스케쥴
- 평균 대기 시간이 가장 짧은 방법
- Starvation (기아 현상) 발생 가능 (긴 프로그램은 영원히 사용 못하는 경우가 발생)
- Round Robin (RR)
- 각 프로세스는 동일 크기의 CPU 할당시간을 가짐
- 할당시간이 끝나면 인터럽트가 발생하여 프로세스는 CPU를 빼앗기고 CPU 큐의 제일 뒤에 줄을 섬
- 대기시간이 프로세스의 CPU 사용 시간에 비례
메모리 관리
- 가상 메모리 : 각 실행 파일마다 가상의 메모리를 설정하고, 필요한 부분을 실제 메모리에 올려 사용한다.
- 스왑영역은 메모리의 연장 공간이다. (가상메모리에서 실제 메모리로 올라가지 못한 영역을 디스크에 적어둔다.)
메모리가 꽉 찼을때 어떤 페이지를 메모리에서 삭제해야 하는가?
- LRU (가장 오래 전에 참조 페이지 삭제) ⇒ 페이지 1 삭제
- LFU (참조 횟수가 가장 적은 페이지 삭제) ⇒ 페이지 4 삭제
디스크 스케줄링
- 디스크 접근 시간의 구성
- 탐색시간 (Seek time) : 헤드를 해당 트랙으로 움직이는데 걸리는 시간
- 회전지연 (Rotational latency) : 헤드가 원하는 섹터에 도달하기까지 걸리는 시간
- 전송시간 (Transfer time) : 실제 데이터의 전송 시간
- 디스크 스케줄링
- FCFS (First-Come First-Served) : 먼저 들어온 애들 부터 처리하는 것 ⇒ XXX
- SSTF (Shortest Seek Time First) : 가장 가까운 것 먼저 처리하는 방식 ⇒ OOO
- Starvation 문제 발생 가능 (가까운 위치만 계속 발생해서 먼 애들은 처리 안될 수도 있다.)
- SCAN : 가장 안쪽에서 바깥쪽으로 쭉 갈길가다가 요청들어오면 처리 (길은 걍 가고 할일있으면 하기) (엘리베이터의 스케쥴링이랑 유사)
저장 장치 계층구조와 캐싱 (Caching)
플래시 메모리
비휘발성 메모리
운영체제의 종류
Linux, MacOS, Windows, IOS … 등등
댓글