OS의 역할


🔖 운영체제의 역할


1. 자원 관리

사용자는 컴퓨터의 다양한 자원(키보드,사운드카드 등)을 사용하는데 이러한

자원을 응용 프로그램에 나누어 주어 사용자가 원할하게 작업할 수 있게 해준다.


2. 자원 보호

사용자 뿐만 아니라 제3의 사람의 접근을 막는다.


3. 하드웨어 인터페이스 제공

운영체제는 하드웨어 인터페이스가 자동으로 설치되게 함으로써 하드웨어의

종류에 상관없이 사용할 수 있게 해준다.


4. 사용자 인터페이스 제공

사용자가 운영체제를 편리하게 사용하도록 지원하기 윈한 것.


🔖 운영체제의 목표


1. 효율성 (자원 관리)

▪ 운영체제의 크기를 최소화

▪ 코드 최적화


같은 자원을 관리하더라도 효율적으로 관리해야한다.

즉, 같은 자원을 사용하여 더 많은 작업량을 처리하거나,

같은 작업량을 처리하는 데 보다 적은 자원을 사용해야 한다.


2. 안정성 (자원 보호)

사용자와 응용 프로그램의 안전 문제와 하드웨어적인 보안 문제를 처리할 수 있어야 한다.


3. 확장성 (하드웨어 인터페이스 제공)

하드웨어의 종류에 상관없이 꽂으면 바로 실행할 수 있는 flug & play 기능을 제공해야 한다.


4. 편리성 (사용자 인터페이스)

▪ GUI


🔖 운영체제의 구분


1. 동시 사용자 수

▪ Single user system

▪ Multi user system


2. 동시 실행 프로세스 수

▪ Single - tasking system

▪ Multi - tasking system


3. 작업 수행 방식

▪ 순차 처리 (No OS)

▪ Batch processing system

▪ Time - sharing system

▪ Distributed processing system

▪ Real-time system


🔖 작업 수행 방식


1. Batch processing system (일괄 작업 시스템)

▷ 특징

▪ 1950s ~ 1960s

▪ 모든 시스템을 중앙에서 관리 및 운영

사용자의 요청 작업을 일정 시간 모아 두었다가 한번에 처리

▪ 시스템 지향적 (System oriented)


▷ 장점

▪ 많은 사용자가 시스템 자원공유

▪ 처리 효율(throughput) 증가


▷ 단점

▪ 생산성 저하

▪ 긴 응답 시간


2. Time - sharing system (대화형 시스템)

대화형 시스템이란 일정 시간이 지나면 어떤 반응이 있는 시스템.

단말기를 예시로 들 수 있다.


▷ 특징

▪ 1960s ~ 1970s

여러 작업을 조금씩 처리하여 작업이 동시에 이루어지는 것처럼 보이게 한다.

▪ multi-tasking system / multi-user system

▪ 시간을 쪼갠다.(=time slice, =time quantum)

여러 사용자가 자원을 동시에 사용

▪ OS가 파일 시스템 및 가상 메모리 관리

▪ 사용자 지향적 (User-oriented)


▷ 장점

▪ 응답시간 단축 (약 5초)

▪ 생산성 향상 → 프로세서 유휴 시간 감소


▷ 단점

▪ 통신 비용 증가

▪ 보안문제 발생

▪ 개인 사용자 체감 속도 저하.


3. Personal Computing (개인용 컴퓨터)

▷ 특징

▪ 개인이 시스템 전체 독점

▪ CPU 활용률이 고려의 대상이 아님

▪ OS가 상대적으로 단순함 → 다양한 사용자 지원기능 지원 , 편리성 증가


▷ 장점

▪ 빠른 응답시간


▷ 단점

▪ 성능이 낮음


4. Parallel Processing System (병렬 처리 시스템)

▷ 특징

▪ 단일 시스템 내에서 둘 이상의 processor 사용 → 동시에 둘 이상의 processor 지원

▪ Tightly coupled system → CPU는 여러개지만, 기타자원(기억장치, 주변장치)들을 공유

▪ 성능향상

▪ 신뢰성 향상 → 하나가 고장나더라도 정상 동작가능


5. Distributed processing system (분산 처리 시스템)

분산 처리 시스템이란 컴퓨터안에 CPU를 여러개 넣으려면 크기, 비용 등 제약이 많기 때문에

네트워크를 기반으로 구축된 Loosely coupled system 이다.


▷ 특징

▪ 물리적인 분산, 통신망 이용한 상호 연결

▪ 각각 운영체제 탑재한 다수의 범용 시스템으로 구성 ⇾ 각각의 컴퓨터를 node라고 부름

▪ 사용자는 “분산운영체제”를 통해 하나의 프로그램을 자원처럼 사용 가능

▪ 각 구성 요소들간의 독립성을 유지하면서 공동작업이 가능하다.

▪ Cluster system(super computer), client-server, P2P 등


▷ 장점

▪ 자원 공유를 통한 높은 성능

▪ 고신뢰성, 높은 확장성

▪ 은폐성(transparency)


▷ 단점

▪ 구축 및 관리 어려움


6. Real-time system (실시간 시스템)

작업 처리에 제한 시간(deadline)을 갖는 시스템


▷ 종류

1. Hard real time task

▪ 시간 제약을 지키지 못하는 경우 시스템에 치명적 영향(ex. 발전소 제어)

2. Soft real time task

▪ 동영상 재생

3. Non real time task


🔖 운영체제의 구조



▷ 유틸리티

• 비상주 프로그램

• UI등 서비스 프로그램


▷ Operating System

• 빨간 박스 친 부분

• System Call + Kernel


▷ System Call Interface

운영체제(system)에게 운영체제 기능을 요청하는(call) 것

• 커널이 제공하는 기능들 중에서 사용자가 사용할 수 있는 기능을 모아둔 것.

• 응용 프로그램이 직접 하드웨어 자원에 직접 접근하는 것을 막아준다.

• 응용 프로그램이 커널에 요청하는 통로




▷ Kernel

• OS의 핵심 부분 → 메모리 상주

메모리 관리

• 가장 빈번하게 사용되는 기능들을 담당한다.(시스템 관리 등등)

• 동의어 : 핵, 관리자 프로그램, 상주 프로그램, 제어 프로그램


단일 구조

• 장점 : 커널 내 모듈간 직접 통신

• 단점 : 커널의 거대화


계층 구조

• 장점 : 모듈화, 설계 및 구현의 단순화

• 단점 : 단일구조 대비 성능 저하


마이크로커널 구조


• 커널의 크기 최소화

• 필수 기능만 포함

• 기타 기능은 사용자 영역에서 수행


📚References


쉽게 배우는 운영체제, 조성호 저

운영체제 강의

운영체제 강의

운영체제 강의