들어가며
공부하면서 중요하다고 생각하는 부분을 생각나는대로 적다보니 순서가 엉망인것 같다. 추후 복습하면서 리눅스마스터 순서대로 정리하도록 해야겠다.
운영체제의 정의 및 목적 역할
정의
- 사용자와 하드웨어간 상호작용을 위한 user interface를 제공
- CPU 중앙처리장치, 메모리 및 주변장치 등 하드웨어를 관리
- 응용프로그램이 동작할수 있는 환경, 프로그래밍 인터페이스를 제공.
목적
- 일의 처리능력
Throughput
향상을 목적으로 함.
- 결과가 얻어질때까지 응답시간
Turnaround
최소화를 목적으로 함.
- 주어진 문제를 정확하게 처리하는
Reliability
의 향상
- 이용할 수 있는 시스템 자원이 어느정도인지
Avaliability
향상.
역할
- 하드웨어 접근이 용의하도록 제어, 입력, 출력 등의 관리를 수행
- 한정된 하드웨어 자원을 다수의 이용자가 공유할 수 있는 기능을 수행
- 자원 스케줄링
- 응용프로그램 작성과 실행이 편리하도록 시스템 호출 system call(시스템 콜 이용해 프로세스를 생성)을 제공
- 예상치 못한 오류시 시스템을 중단하지 않고 실행할수 있는 오류복구 기능
- 데이터를 조직화 하고 저장, 파일 관리 및 데이터베이스 기능 제공.
- 원격 컴퓨터와 연결할 수 있는 네트워크 기능 제공
- 편리한 사용자 인터페이스 제공
운영체제 구조와 기능
구조
- 응용 프로그램을 실행하거나 shell, GUI, 배치작업 batch jobs 를 통해 운영체제 기능 사용
- 응용프로그램은 시스템 호출을 통하여 커널의 서비스 이용
- 다양한 하드웨어 이식성을 향상하기 위해 하드웨어 추상계층 제공 (HAL : Hardware Abstraction Layer)
기능
- 리소스 관리기능 제공
- 자원 스케줄링 기능 제공
- 하드웨어 관리와 네트워크 주소 할당, 네트워크 생성, 경로설정 등 네트워크 제어기능 제공
- 파일시스템이나 데이터베이스를 통해 데이터 관리, 파일 및 네트워크와 같은 자원 공유기능 제공
- 자원에 무분별하게 접근 하는것을 방지하기 위해 자원보호기능 제공
- 디스크 및 파일시스템과 같은 시스템 손상이 있는지 점검하기 위한 오류검사기능과 복구기능 제공.
- 자원의 유휴시간을 최소화 하기위해 가상 컴퓨터 실행할 수 있는 가상화 기능
운영체제의 운용 기법
운용 기법의 종류
- 일괄처리 시스템 <-> Batch Processing
- 다중 프로그래밍 시스템 <-> Multi Programming
- 시분할 시스템 <-> Time Sharing
- 다중 처리 시스템 <-> Multi-Processing
- 실시간 처리 시스템 <-> Real Time Processing
- 다중 모드 시스템 <-> Multi-Mode
- 분산 처리 시스템 <-> Distribute Processing
운영기법의 발전
- 1세대 : 일괄처리 시스템
- 2세대 : 다중 프로그래밍, 다중 처리 시스템
- 3세대: 시분할 시스템
- 4세대: 다중 모드 시스템
- 5세대: 분산 처리 시스템
운영체제의 사례
데스크톱 및 서버 운영체제
윈도우
macOs
리눅스 Linux
유닉스 UNIX
모바일 및 임베디드 운영체제
안드로이드 Android
iOS, watchOS, iPadOS, tvOS
타이젠 Tizen
임베디드 리눅스 Embedded Linux
운영체제
Linux
Windows IoT
RTOS
경량 OS
시험에서
- 유닉스에서 발전한것인지, 리눅스인지, 아니면 독자 OS 인지 구분 필요
- 모바일기기 OS 인지, TV 버전인지, IVI 에서 사용되는 지 등 구분 필요