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
▪ 운영체제 강의
▪ 운영체제 강의
▪ 운영체제 강의