2024. 1. 19. 18:22ㆍ프로그래밍 공부/OS
운영체제의 역할
응용프로그램
운영체제
컴퓨터 시스템 자원
User Interface (편리성)
CUI(Character User interface)
GUI(Graphical User interface)
EUCI(End-User Comfortable Interface)
Resource management (효율성)
HW resource (processor, memory, I/O devices, Etc.)
SW resource (file, application, message, signal, Etc.)
Process and Thread management
실행주체
System management (시스템 보호)
컴퓨터 시스템의 구성
Multi-layer architecture
Application Process
System call Interface
Kernel OS
Resource Management
Computer Hardware
컴퓨터 시스템의 구성
사용자들
셀
컴파일러와 인터프리터
시스템 라이브러리
커널 -커널에 대한 시스템 호출 인터페이스
하드웨어에 대한 커널 인터페이스
운영체제의 구분
동시 사용사 수
Single-user system
Multi-user system
동시 실행 프로세스 수
Single-tasking sytem
Multi-tasking system(Multiprogramming system)
작업 수행 방식(사용자가 느끼는 사용 환경)
Batch processing system
Time-sharing system
Distributed processing system
Real-time system
동시 사용자 수
단일 사용자(Single-user system)
한 명의 사용자만 시스템 사용 가능
한 명의 사용자가 모든 시스템 자원 독점
자원관리 및 시스템 보호 방식이 간단함
개인용 장비(PC, mobile) 등에 사용
Windows 7/10, android, MS-DOS 등
다중 사용자(Multi-user system)
동시에 여러 사용자들이 시스템 사용
각종 시스템 자원(파일 등)들에 대한 소유 권한 관리 필요
기본적으로 Multi-tasking 기능 필요
OS의 기능 및 구조가 복잡
서버, 클러스터(cluster)장비 등에 사용
Unix, Linux, Windows server 등
동시 실행 프로세스 수
단일작업 (Single-tasking system)
시스템 내에 하나의 작업(프로세스)만 존재
하나의 프로그램 실행을 마친 뒤에 다른 프로그램의 실행
운영체제의 구조가 간단
예) MS-DOS
다중작업 (Multi-tasking system)
동시에 여러 작업(프로세스)의 수행 가능
작업들 사이의 동시 수행, 동기화 등을 관리해야 함
운영체제의 기능 및 구조가 복잡
예) Unix/Linux, Windows 등
작업 수행 방식
Batch processing system
일괄처리 시스템
Time-sharing system
시분할 시스템
Distributed processing system
분산처리 시스템
Real-time system
실시간 시스템
순차 처리
운영체제 개념 존재하지 않음
-사용자가 기계어로 직접 프로그램 작성
컴퓨터에 필요한 모든 작업 프로그램에 포함
프로세서에는 명령어 저장 방법, 계산 대상, 결과 저장 위치와 방법, 출력 시점, 위치 등
실행하는 작업별 순차 처리
각각의 작업에 대한 준비 시간이 소요
Batch Systems(1950-1960s)
모든 시스템을 중앙(전자계산소 등)에서 관리 및 운영
사용자의 요청 작업(천공카드 등)을 일정 시간 모아 두었다가 한번에 처리
시스템 지향적(System-oriented)
장점
많은 사용자가 시스템 자원 공유
처리 효율 향상
단점
생산성 저하
같은 유형의 작업들이 모이기를 기다려야 함
긴 응답시간
약 6시간(작업 제출에서 결과 출력까지의 시간)
Time Sharing Systems (1960s~1970s)
시분할
여러 사용자가 자원을 동시에 사용
OS가 파일 시스템 및 가상 메모리 관리
사용자 지향적 (User-oriented)
대화형(conversational, interactive) 시스템
단말기(CRT terminal) 사용
termnal server operator
terminals Users
장점
응답시간(response time) 단축 (약 5초)
생산성(productivity) 향상
프로세서 유휴 시간 감소
단점
통신 비용 증가
통신선 비용, 보안 문제 등
개인 사용자 체감 속도 저하
동시 사용자 수↑→ 시스템 부하 수↑→ 느려짐(개인관점)
Personal Computing
개인이 시스템 전체 독점
CPU 활용률(utilization)이 고려의 대상이 아님
OS가 상대적으로 단순함
하지만, 다양한 사용자 지원 가능 지원
장점
빠른 응답시간
단점
성능(performance)이 낮음
Parallel Processing System
단일 시스템 내에서 둘 이상의 프로세서 사용
동시에 둘 이상의 프로세서 지원
메모리 등의 자원 공유(Tightly-coupled system)
사용 목적
성능 향상
신뢰성 향상 (하나가 고장 정상 동작 가능)
프로세서 간 관계 및 역할 관리 필요
CPU
시스템버스
기억장치
Distributed Processing Systems
네트워크를 기반으로 구축된 병렬처리 시스템
(Loosely-coupled system)
LAN Network
물리적인 분산, 통신망 이용한 상호 연결
각각 운영체제 탑재한 다수의 범용 시스템으로 구성
사용자는 분산운영체제를 통해 하나의 프로그램, 자원처럼 사용가능(은폐성)
각 구성 요소들 간의 독립성 유지, 공동작업 가능
Cluster system, client-server system, P2P 등
장점
자원 공유를 통한 높은 성능
고신뢰성, 높은 확장성
단점
구축 및 관리가 어려움
Real-time Systems
실시간
작업 처리에 제한 시간(deadline)을 갖는 시스템
제한 시간 내에 서비스를 제공하는 것이 자원 활용 효율보다 중요
작업(task)의 종류
Hard real-time task
시간 제약을 지키지 못하는 경우 시스템에 치명적인 영향
예, 발전소 제어, 무기 제어 등
Soft real-time task
동영상 재생 등
Non real-time task
개요
운영체제의 역할
운영체제의 구분
동시사용자 수
동시 실행 프로세스 수
작업 방식(사용자 관점)
운영체제의 구조
운영체제의 기능
운영체제의 구조
커널(Kernel)
OS의 핵심 부분(메모리 상주)
가장 빈번하게 사용되는 기능들 담당
시스템 관리(processor, memory, Etc) 등
동의어
핵(neucleus), 관리자 프로그램, 상주 프로그램, 제어 프로그램 등
유틸리티(Utility)
비상주 프로그램
UI등 서비스 프로그램
운영체제의 구조
applications
Utilities
System calls
Kernel
Hardware
Major functions of Kernel
Resource Mgmt
Hardware resource management
-Processor, memory, I/O devices, etc.
Software resource management
-files, messages, processes, etc.
단일 구조
사용자 영역 응용 프로그램
커널 영역 시스템 호출 인터페이스
커널
장점
커널 내 모듈 간 직접 통신
효율적 자원 관리 및 사용
단점
커널의 거대화
오류 및 버그, 추가 기능 구현 등 유지 보수가 어려움
동일 메모리에 모든 기능이 있어, 한 모듈의 문제가 전체 시스템에 영향(예, 악성코드 등)
계층 구조
장점
모듈화
계층간 검증 및 수정 용의
설계 및 구현의 단순화
단점
단일구조 대비 성능 저하
원하는 기능 수행을 위해 여러 계층을 거쳐야 함
마이크로 커널 구조
커널의 크기 최소화
필수 기능만 포함
기타 기능은 사용자 영역에서 수행
응용 프로그램
시스템 호출 인터페이스
파일 시스템
사용자 영역
커널 영역
프로세스 간 통신
메모리 관리 프로세스 관리
운영체제의 기능
프로세스(Process) 관리
프로세서(Processor) 관리
메모리(Memory) 관리
파일(File) 관리
입출력(I/O) 관리
보조 기억 장치 및 기타 주변장치 관리 등
Process Management
프로세스(Process)
커널에 등록된 실행 단위(실행 중인 프로그램)
사용자 요청/프로그램의 수행 주체(entity)
OS의 프로세스 관리
생성/삭제, 상태관리
자원 할당
프로세스 간 통신 및 동기화(synchronization)
교착 상태(deadlock) 해결
프로세스 정보 관리
PCB (Process Control Bloc)
Processor Management
중앙 처리 장치 (CPU)
프로그램을 실행하는 핵심 자원
프로세스 스케줄링(Scheduling)
시스템 내의 프로세스 처리 순서 결정
프로세서 할당 관리
프로세스들에 대한 프로세서 할당
한 번에 하나의 프로세스만 사용 가능
Memory Management
주기억장치
작업을 위한 프로그램 및 데이터를 올려 놓는 공간
Multi-user, Multi-tasking 시스템
프로세스에 대한 메모리 할당 및 회수
메모리 여유 공간 관리
각 프로세스의 할당 메모리 영역 접근 보호
메모리 할당 방법(scheme)
전체 적재
장점: 구현이 간단 단점: 제한적 공간
일부 적재 (virtual memory concept)
프로그램 및 데이터의 일부만 적재
장점: 메모리의 효율적 활용
단점: 보조기억 장치 접근 필요
File Management
파일: 논리적 데이터 저장 단위
사용자 및 시스템의 파일 관리
디렉토리(directory) 구조 지원
파일 관리 기능
파일 및 디렉토리 생성/삭제
파일 접근 및 조작
파일을 물리적 저장 공간으로 사상(mapping)
백업 등
I/O Management
입출력(I/O)과정
OS를 반드시 거쳐야 함
실행중인 프로세스
입출력 요구 실행 가능 상태로 전이
운영체제(OS)
입출력 요구 전달 입출력 완료(인터럽트)
입출력 처리장치
I/O Management
커널 공간
사용자 공간
Others
Disk
Networking
Security and Protection system
Command interpreter system
System call interface
응용 프로그램과 OS 사이의 인터페이스
OS가 응용프로그램에 재공하는 서비스
'프로그래밍 공부 > OS' 카테고리의 다른 글
| 6 프로세스 동기화 & 상호배제 (0) | 2024.01.24 |
|---|---|
| 5 프로세스 스케줄링 (0) | 2024.01.22 |
| 4 스레드 관리 (0) | 2024.01.21 |
| 3 프로세스 관리 (0) | 2024.01.19 |
| 1 컴퓨터 시스템 개요 (0) | 2024.01.19 |