학기가 시작되고 운영체제, 알고리즘, 데이터통신 등의 과목을 수강하게 되었다. 개인 프로젝트도 시작하겠지만 우선 학기 중 배우는 CS에 대해서 정리를 우선으로 하며 포스팅을 진행할 계획이다.
Operating System
응용 프로그램 실행을 제어하는 프로그램
응용 프로그램과 하드웨어 간의 인터페이스
컴퓨터가 부팅이 되고 메인 메모리(RAM)에 제일 먼저 로드(Load)되어 응용 프로그램의 실행을 제어하고 응용프로그램과 하드웨어가 서로 통신할 수 있게 만드는 소프트웨어
OS = Kernel + System Programs
Kernel
Kernel
함수들Kernel
이 호출되는 시점device driver
함수가 실행됨System Programs
설정
또는 제어판
에 존재하는 모든 프로그램들Application Program
(응용 프로그램) : System Program이 아닌 프로그램들각 목적에 따른 구체적인 내용은 다음 단락부터 서술한다.
Convenience
사용자에게 컴퓨터의 프로그램을 쉽고 효율적으로 실행할 수 있는 환경을 제공
Efficiency
하드웨어 및 소프트웨어 자원을 여러 사용자 간에 효율적 할당, 관리, 보호하는 것
Ability to evolve
서비스를 방해하지 않고 새로운 시스템 기능을 효과적으로 개발, 테스트 및 도입
💻 프로그램 개발 -
Program development
- 에디터 & 디버거
✅ 프로그램 실행 -
Program execution
- 프로그램 실행과정, 자원 관리, 스케줄링
📻 입출력 디바이스 접근 -
Access to I/O devices
- 복잡한 내부는 숨기고 함수만 호출하도록 함
📂 파일에 대한 접근 제어 -
Controlled access to files
- 여러 장치, 사용자 동시 접근
🔐 시스템 접근 -
System access
- 다중 사용자(자원보호, 동시성)
🧾 회계 -
Accounting
- 사용 통계 수집, 성능 모니터링
- 향후 기능 보완의 필요성 미리 예상
- 사용료 청구 목적
🚨 오류 검출 및 응답 -
Error detection and response
- 내부 및 외부 하드웨어 오류
- 메모리 오류
- 기기 고장
- 소프트웨어 오류
- 산술 오버플로우, division by zero (0으로 나누기)
- 금지된 메모리 영역 접근
- 운영체제에서 허용할 수 없는 응용 프로그램 요청
Resource
컴퓨터에서 사용하고 있거나 사용할 수 있는 각각의 하드웨어 및 소프트웨어 요소
Processor(CPU)
, memory
, disks
, printers
, network cards
, serial/parallel port
, USB port
, timer
, etc.운영체제는 각 자원을 관리하며 이에 대한 책임을 진다.
📟 자원 관리에 대한 책임
⚙️ 일반 컴퓨터 소프트웨어와 동일한 방식으로 작동
- 운영체제는 프로세서에 의해 실행되는 함수들의 집합, 프로그램 또는 프로그램 모음이다.
➕ 하드웨어 업그레이드 및 새로운 타입의 하드웨어 추가
- 하드웨어 업그레이드 및 추가를 통해 새로운 기능이 추가될 수 있다.
- 하드웨어 기능이 추가되면서 소프트웨어 기능도 추가됨
- MMU의 연속 메모리 할당 - 페이징 기법
🆕 새로운 서비스
- 하드웨어는 동일한데 기능이 추가
- Graphical User Interface[GUI]
🛠️ 수정
- 오류 수정
- 수정이 새로운 결함을 가져올 수 있다...?