📌운영체제란?
하드웨어를 효율적으로 관리, 컴퓨터시스템의 자원을 효율적으로 관리
사용자에게 편리하고 효과적으로 사용할 수 있는 서비스를 제공하는 시스템 소프트웨어
프로세서 관리.
🖥컴퓨터 하드웨어
🔲프로세서
중앙처리장치(CPU) - 연산 수행, 컴퓨터의 모든 동작 제어
데이터 부분의 레지스터, 연산 장치
제어 부분의 제어 장치
-> 내부버스를 통해 동작 제어 시스템 버스를 통해 외부 연결
레지스터
- 프로세서 내부에 있는 메모리, 프로세서가 사용할 데이터 저장, 컴퓨터에서 가장 빠른 메모리
- 종류
- 용도: 전용, 범용
- 정보 변경 가능: 가시, 불가시
- 저장하는 정보: 데이터, 주소, 상태
사용자 가시 레지스터
📝메모리
- 주기억장치 (Main Memory)
- 프로세서가 수행할 프로그램(프로세스) 할당 및 해제
- 디스크 입출력 병목현상 해소를 위해 디스크와 프로세서 사이의 위치
- 캐시 (프로세스 내부에 있는 메모리)
- 메인 메모리 입출력 병목현상 해소
- 하드웨어적으로 관리됨
- 캐시히트, 캐시미스
- 지역성 (locality) 덕분에 캐시가 효율적임
- 공간적 지역성: 인접한 주소를 참조
- 시간적 지역성: 한번 참조한 주소 다시 참조
- 지역성은 캐시 적중률과 밀접!
- 보조기억 장치
- 프로그램과 데이터 저장
- 프로세서가 직접 접근할 수 없음(주변장치)
- 주기억장치를 거쳐서 접근
- 메모리 할당 및 관리
- 가상메모리 관리
🚌시스템 버스
- 하드웨어의 요소(데이터, 신호)들을 물리적으로 연결하는 통로
- 데이터버스, 주소버스, 제어버스 로 구성~~
⌨주변장치
나머지 하드웨어들
- 입력장치(키보드, 마우스, 터치)
- 출력장치(모니터, 스피커, 프린터)
- 저장장치(usb, disk)
- OS관리
- 장치 드라이버를 관리 (인터페이스 제공)
- 인터럽트 처리
- 파일 및 디스크 관리
📌 운영체제의 역할
User Interface(편리성)
Resource management(효율성)
- HW(processor, memory, I/O divice), SW(file, app, message)
Process and Thread management
System management(시스템 보호)
System call Interface
사용자가 직접 Kernel을 이용할 수 있게 빼놓은 기능
🛠 운영체제의 구분
작업 수행 방식
순차처리
- 운영체제 개념이 존재하지 않음, 기계어로 작성, 각각의 작업에 준비 시간이 필요
일괄처리
- 모든 시스템을 중앙에서 관리
- 작업을 일정시간 모았다가 한번에 처리
- 시스템 지향적
- 장점: 처리효율 향상, 시스템 자원 공유
- 단점: 생산성 저하(같은 유형의 작업들을 모이기를 기다림.) + 긴 응답시간
시분할 시스템
- 여러 사용자가 자원을 동시에 사용, OS가 파일 시스템 및 가상 메모리 관리
- 사용자 지향적: 대화형 시스템(단말기)
- 장점: 응답시간 단축, 생산성 향상
- 단점: 비용 증가, 보안 문제, 많이 사용되면 시스템 부하
개인 컴퓨터
- cpu 활용대신 사용자의 편의성이 더 고려됨
- 상대적으로 단순해지고 다양한 지원 기능
- 빠른 응답시간 | 낮은 성능
병렬컴퓨팅
- 단일 시스템에 둘 이상의 프로세서를 사용
- 메모리 등 자원 공유
- 성능향상, 신뢰성향상(대체가 바로가능함)
- 프로세서간 관계 및 역할 관리 필요
분산컴퓨팅
- 네트워크 기반으로 구축된 병렬처리 시스템
- 붙이기 쉬움, 각각 운영체재를 탑재한 범용 시스템으로 구성
- 사용자는 분산운영체제를 통해 하나의 자원처럼 사용가능
- 슈퍼컴퓨터, 클라이언트서버 등
- 자언 공유를 통한 높은성능, 높은 신뢰성 및 확장성 | 구축 및 관리가 어려움
실시간 시스템
- 작업처리에대한 제한 시간을 갖음, 자원보다 시간이 중요할 때(발전소, 생명, 무기제어, 동영상)
📌 운영체제의 구조
커널(kernel, 알맹이)
OS의 핵심 부분(메모리에 상주), 가장 빈번하게 사용되는 기능들(processor, memory)
유틸리티(Utility)
비상주 프로그램, UI
단일 구조
- 하나의 커널에 모든 기능 모아둠
- 장점: 커널안에서 모듈간 직접 통신(효율적 자원관리 및 사용)
- 단점: 커널의 거대화(오류, 버그 등 유지보수 어려움), 한 모듈의 문제가 전체시스템에 영향을 줌
계층 구조
- 0 하드웨어 > 1 프로세서 > 2 메모리 > 3 메시지 해석기 > 4 입출력 > 5 응용프로그램(사용자)
- 장점: 모듈화(계층간 검증 및 수정 용의), 설계 미치 구현의 단순화
- 단점: 단일구조 대비 성능 저하(여러 계층 거쳐야함)
마이크로 커널 구조
- 커널의 크기를 최소화
- 필수 기능만 포함, 기타 기능은 사용자 영역에서 수행
📌 운영체제의 기능
프로세스 관리
- 프로세스
- 커널에 등록된 실행 단위 (실행 중, 실행 대기 중인 프로그램)
- 사용자 요청/ 프로그램의 수행 주체(entity)
- 📌OS의 프로세스 관리기능
- 생성/삭제, 삭제 관리
- 자원할당
- 프로세스 간 통신 및 동기화
- 교착 상태(Deadlock) 해결
- 프로세스 정보 관리
- PCB(Process Control Block)
프로세서 관리
- 중앙 처리 장치(CPU, 프로그램을 실행하는 핵심 자원)
- 프로세스 스케줄링(프로세스 처리 순서 결정)
- 프로세서 할당 관리 (프로세스들에 대한 프로세스 할당, 한번에 하나의 프로세스만 사용가능)
메모리 관리
- 주기억장치
- 작업을 위한 프로그램 및 데이터를 올려 놓는 공간
- cpu가 직접 접근할 수 있는 기억장치
- Multi-user, Muti-tasking 시스템
- 프로세스에 대한 메모리 할당 및 회수
- 메모리 여유공간 관리
- 각 프로세스의 할당 메모리 영역 접근 보호
- 메모리 할당 방법(scheme)
- 전체 적재 (구현이 간단하나 공간이 제한적)
- 일부 적재 (메모리를 효율적으로 활용할 수 있음, 단 보조기억 장치 접근이 필요함)
파일 관리
- 논리적 데이터 저장 단위
- 사용자 및 시스템의 파일 관리
- 디렉터리 구조 지원
- 파일 관리 기능
입출력 관리
https://youtu.be/EdTtGv9w2sA [Course] Operating System (CPA310) - 운영체제 강의. HPC Lab. KOREATECH