-
OS 2강: OS overviewos 운영체제 2024. 2. 19. 03:01
https://www.youtube.com/watch?v=nxl_cUd55Ag&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=5
운영체제의 역할:
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등)
실행주체, Thread(가벼운 실행주체) 관리
시스템 보호(관리)
Applicaiton에서 os에 요청할 때, System Call Interface를 통해 요청됨. (커널을 마음대로 조작할 수 없게끔)
https://www.youtube.com/watch?v=hzXVQIlSSos&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=3
운영체제 구분:
사용자 수에 따라:
Single-User system:
한 명의 사용자가 모든 시스템 자원 독점
자원관리 및 시스템 보호 방식이 간단.
개인용 장비(PC, mobile)에 사용(windows, android, MS-DOS)
Multi-User system
동시에 여러 사용자들이 시스템 사용.
각종 시스템 자원(파일)에 대한 소유 권한 관리 필요
os의 기능 및 구조가 복잡
서버, 클러스터 장비 등에 사용(Unix, Linux, Windows server)
동시 실행 프로세스 수에 따라:
단일 작업:
시스템 내에 하나의 작업(프로세스)만 존재
운영체제가 간단 (ex: MS-DOS)
다중 작업:
동시에 여러 작업(작업들 간 동시수행, 동기화 등 관리 필요)
운영체제의 기능 및 구조가 복잡 (ex: Windows, Unix)
작업 수행 방식에 따라:
과거: 순차처리 = 운영체제 개념 x
1. Batch Systems(일괄처리) 1950~60s
모든 시스템을 중앙(전자계산소)에서 관리 및 운영
사용자의 요청 작업을 일정 시간 모아 두었다가 한번에 처리
특징: 시스템 지향적
장점: 많은 사용자가 시스템 자원 공유, 처리 효율 향상
단점: 생산점 저하(같은 유형의 작업이 모이기를 기다려야 함), 긴 응답시간
2. Time Sharing Systems(시분할) 1960~70s
여러 사용자가 자원을 동시에 사용 (os가 파일 시스템 및 가상 메모리 관리)
특징: 사용자 지향적, 대화형 시스템, 단말기 사용
장점: 응답시간 단축, 생산성 향상
단점: 통신 비용 증가(통신선 비용, 보안 문제), 개인 사용자 체감 속도 저하(동시 사용자=시스템 부하=느려짐)
3. Personal Computing:
개인이 시스템 전체 독점, CPU 활용률이 교려의 대상 아님(100% 안써도 됨),
OS의 단순화, 사용자 지원 기능 향상
장점: 빠름
단점: 성능 저하 (비싼거 못 쓰니깐)
4. Parallel Processing System(병렬 처리 시스템):
단일 시스템에 둘 이상의 프로세스, 메모리 자원 공유
사용목적: 성능 향상, 신뢰성 향상(하나가 고장나도 정상 사용이 가능함)
특징: 프로세서간 관계 및 역할 관리 필요
5. Distributed Processing Systems (네트워크를 기반으로 구축된 병렬처리 시스템)
물리적 통신망(LAN)의 이용한 상호 연결
각각 운영체제 탑재한 다수의 범용 시스템으로 구성
분산운영체제(cluster 슈퍼컴 등)를 통해 하나의 프로그램, 자원처럼 사용가능(은폐성)
장점: 높은 성능, 고 신뢰성
단점: 구축 및 관리가 어려움.
6. Real-time Systems
작업 처리에 제한 시간(deadline)을 갖는 시스템, 제한 시간 내에 서비스를 제공하는 것이 자원 활용 효율보다 중요
작업 종류:
Hard real-time task: 시간 제약을 지키지 못하면 시스템에 치명적(원자력 발전소)
Soft real-time task: 동영상 재생
Non real-time task
운영체제의 구조:
커널(Kernel):
os의 핵심(메모리 상주): 가장 빈번하게 사용되는 기능 담당(시스템 관리 등)
동의어: 핵, 관리자 프로그램, 상주 프로그램, 제어 프로그램 등
유틸리티:
비상주 프로그램, UI등 서비스 프로그램
단일 구조 OS: (main함수 안에 다 넣은 격)
장점: 커널 내 모듈간 직접 통신 = 효율적 자원 관리 및 사용
단점: 커널의 거대화 = 오류 및 버그, 추가 기능 구현 등 유지보수 어려움 & 동일 메모리에 모든 기능이라 한 모듈의 문제가 크리티컬해짐.
계층 구조:
장점: 모듈화 = 계층간 검증 및 수정 용의 & 설계 및 구현의 단순화
단점: 단일구조 대비 성능 저하 (여러 계층을 거쳐야 되기 때문에)
마이크로 커널 구조:
커널에는 필수 기능만 담고 나머지는 다 사용자 영역으로 처리
운영체제의 기능:
프로세스 관리:
프로세스:
커널에 등록된 실행 단위 (실행 중인 프로그램)
사용자 요청(프로그램)의 수행 주체
os의 프로세스 관리 기능
생성 및 삭제, 상태 관리
자원 할당
프로세스 간 통신 및 동기화
교착상태(deadlock) 해결
프로세스 정보 관리
PCB(process control block)
프로세서 관리:
CPU, CPU 스케줄링, 프로세서 할당 관리(한번에 하나의 프로세스만 사용 가능)
메모리 관리:
주 기억장치,
Multi-user, Multi-tasking 시스템:
프로세스에 대한 메모리 할당 및 회수, 여유공간 관리, 각 프로세스의 할당 메모리 영역 접근 보호
메모리 할당 방법:
전체 적재= 장점: 간단 구현, 단점: 제한적 공간
일부 적재= 장정: 메모리의 효율적 활용, 단점: 보조기억 장치 접근 필요
파일 관리:
파일: 논리적 데이터 저장 단위
사용자 및 시스템 파일 관리
디렉토리 구조 지원
파일 관리 기능:
파일 및 디렉토리 생성/삭제
파일 접근 및 조작
파일을 물리적 저장 공간으로 사상
백업
입출력 관리:
os를 반드시 거침
사용자->커널공간->입출력장치
그외:
디스크, 네트워크, 보안 시스템, command interpreter system, system call interface(os와 응용 프로그램 간의 인터페이스)
'os 운영체제' 카테고리의 다른 글
컴퓨터 구조: 어드레싱 모드란? (0) 2024.03.25 OS 5강: 프로세스 스케줄링 (0) 2024.03.01 OS 4강: 쓰레드 관리 (0) 2024.02.20 OS 3강: 프로세스 관리 (0) 2024.02.19 OS 1강: 컴구 Overview (0) 2024.02.17