🌟 본 게시물은 이화여자대학교 반효경 교수님 강의를 참고로 작성한 게시물 입니다. 틀린 내용은 꼬옥 지적 부탁드립니다 ! 🌟
1. 운영체제란 무엇인가?
컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어를 말한다. 운영체제는 하드웨어와 소프트웨어를 연결하는 소프트웨어 계층이다.
✔️ 운영체제의 주요역할
- 하드웨어 자원을 효율적으로 관리
- 사용자가 컴퓨터를 쉽게 다룰 수 있게 GUI 인터페이스 제공
✔️ 자원이란 CPU, 메모리, 하드웨어 뿐만 아니라 소프트웨어 자원까지 포함하여 부르는 말이다. 자원관리는 운영체제의 중요한 역할 중 하나이다*
✔️ 협의의 운영체제(커널)
- 운영체제의 핵심 부분으로 전원이 켜짐과 동시에 메모리에 상주하는 부분
✔️ 광의의 운영체제
- 커널 뿐만 아니라 각종 시스템 유틸리티를 포함한 개념
- 항상 메모리에 올려두는 것이 아닌 별도의 프로그램으로서 사실상 운영체제의 일부라고 보긴 어렵지만 운영체제와 함께 설치되기 때문에 넓은 의미로 포함시킨다.
2. 운영체제의 목적
✔️ 운영체제의 핵심은 하드웨어를 효율적으로 관리할 수 있게 하는 것
✔️ 주어진 자원으로 최대한의 성능을 내도록
✔️ 사용자가 컴퓨터를 편리하게 사용할 수 있는 환경을 제공하는 것
- 사용자간의 형평성 있는 자원 분배
✔️ 사용자 및 운영체제 자신을 보호
✔️ 프로세스, 파일, 메세지(소프트웨어 자원) 등을 관리
✔️ 운영체제의 자원? (하드웨어)
- CPU, RAM, IO 장치 등등
3. 운영 체제의 분류
✔️ 동시 작업 가능 여부
- 단일 작업(sigle tasking)
- 한 번에 하나의 작업만 처리
- 다중 작업(multi tasking)
- 동시에 두 개 이상의 작업 처리
- 현대의 운영체제 들은 대부분 다중 작업이 가능한 운영체제
✔️ 사용자의 수
여러 사용자가 동시에 접근할 수 있는지를 기준으로 구분
- 단일 사용자(sigle user) 예 ) MS-DOS, MS Windows
- 다중 사용자(multi user) 예 ) UNIX, NT server
✔️ 처리 방식
- 일괄 처리(bath processing)
- 작업 요청의 일정량 모아서 한꺼번에 처리
- 작업이 완전 종료될 때까지 기다려야함 예 ) 초기 Punch Card 처리 시스템
- 시분할(time sharing)
- 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
- 일괄 처리 시스템에 비해 짧은 응답을 가짐
- interactive한 방식
- 범용 컴퓨터의 처리방식
- 실시간(Realtime OS)
- 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS 예 ) 원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어
- 실시간 시스템의 개념 확장
- Hard realtime system (경성 실시간 시스템)
- Soft realtime sysytem(연성 실시간 시스템)
✔️ 몇 가지 용어
- Multitasking (여러 프로그램이 실행되는 것)
- Multiprogramming (메모리에 여러 프로그램이 올라가있음을 강조)
- Time sharing (Multitasking과 유사하지만 CPU 강조)
- Multiprocess
- Multiprocessor
- 하나의 컴퓨터에 CPU(processor)가 여러 개 붙어 있음을 의미
- 구분
- 위의 용어들은 컴퓨터에서 여러 작업을 동시에 수행하는 것을 뜻한다
- Multiprogramming은 여러 프로그램이 메모리에 올라가 있음을 강조
- Time Sharing은 CPU의 시간을 분할하여 나누어 쓴다는 의미를 강조
✔️ 운영 체제의 예
- UNIX
- 코드의 대부분을 C언어로 작성 됨
- 높은 이식성
- 최소한의 커널 구조
- 복잡한 시스템에 맞게 확장 용이
- 소스 코드 공개
- 프로그램 개발에 용이
- 대형 컴퓨터를 위해 만들어짐
- 다양한 버전
- System V, FreeBSD, SunOs, Solaris
- Linux (Unix 소스코드 기반)
- DOS(Disk Operating System)
- MS사에서 1981년 IBM-PC를 위해 개발
- 단일 사용자용 운영체제, 메모리 관리 능력의 한계(주 기억 장치 : 640KB)
- MS Windows
- MS사의 다중 작업용 GUI 기반 운영 체제
- Plug and Play, 네트워크 환경 강화
- DOS용 응용 프로그램과 호환성 제공
- 불안정성 (초창기 Windows)
- 풍부한 자원 소프트웨어
- Hanheld device를 위한 OS
- PalmOS, Pocket PC (WinCE), Tiny OS
4. 운영체제의 구조
CPU, Memory, I/O Device, Disk (운영체제는 각 자원들을 관리한다)
✔️ CPU 스케줄링
- 어떤 프로그램에게 우선순위를 할당할지?
- 짧은 간격으로 프로그램을 교체 함 (시분할)
- 프로그램이 실행된 순서대로 우선순위를 할당하면 작업이 길어질 경우 나머지 프로그램 응답시간이 길어지기 때문에 사용하지 않는다.
✔️ 메모리 관리
- 한정된 메모리를 어떻게 관리하나?
- 프로그램 실행에 필요한 최소한의 정보만을 메모리에 올려 둠
- CPU에서 사용될 가능성이 낮은 정보들을 DISK에 내려둔다.
- CPU에서 사용될 가능성이 낮은 정보를 어떻게 판단하는지?
- 데이터가 메모리에 올라간 이후로 자주 사용된 데이터이면 사용될 가능성이 높은 정보로 판단한다
✔️ DISK 파일관리
- DISK 스케줄링 (엘리베이터 스케줄링과 유사함 CPU 스케줄링과는 다르다)
- DISK에 들어온 요청들을 HEAD와 가까운 위치에 들어온 요청이 있다면 먼저 처리하고 DISK HEAD의 이동을 최소화한다.
✔️ I/O Device
- 다른 자원들에 비해 느리다.
- 입출력관리 인터럽트
- I/O Device가 작업을 처리해야할 경우 CPU에게 인터럽트 신호를 준다
[질문 리스트]
- 운영체제의 정의를 설명하고 그 기능에 대해 아는대로 설명해주세요
- 운영체제는 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층이다. 운영체제는 사용자가 컴퓨터를 쉽게 다룰 수 있게 GUI 인터페이스 제공하고, 하드웨어 자원을 효율적으로 사용할 수 있게 도와준다.
- 운영체제 운용 방법 중 하나인 시분할 시스템에 대해서 설명해주세요
- 시분할 시스템은 여러 작업을 수행할 때 CPU를 일정한 시간 단위로 프로그램에게 할당하여 처리해줌으로써 각 사용자에게 독립된 컴퓨터를 사용하는 느낌을 준다. 라운드 로빈(Round Robin)방식이라고도 한다.
- 하나의 CPU는 같은 시점에서 여러 개의 작업을 동시에 수행할 수 없기 때문에, CPU의 전체 사용시간을 작은 작업 시간량으로 쪼개어그 시간량 동안만 번갈아가면서 CPU를 할당하여 각 작업을 처리하는 방법이다.모든 작업이 동시에 진행되는 것처럼 대화식 처리가 가능하다. 각 작업에 대한 응답시간을 최소화 하는 것이 목적이다.
- 운영체제의 개념을 좁은 의미와 넓은 의미로 나누어 간략하게 설명하세요
- 운영체제의 좁은 의미는 운영체제 커널을 의미하고 커널은 운영체제의 핵심 부분임으로 전원이 켜짐과 동시에 메모리에 상주합니다. 운영체제의 넓은 의미는 운영체제의 커널과 각종 주변 유틸리티 시스템을 포함한 개념입니다.