부각코 CS스터디(운영체제) 결과를 기록으로 남기는 포스팅입니다.
운영체제(소프트웨어) 이해
- 시대가 흘러도 변하지 않는 컴퓨터의 원리 및 철학 중 핵심기술
- 내가 운영체제라고 생각하기
- 내가 하드웨어를 어떻게 관리할까?
- 어떻게 하면 사용자가 편하게 사용할 수 있을까?
운영 체제의 정의
- 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
- 광의: 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념
- 협의: 커널을 의미
커널(kernel)
- 메모리에 상주하며 응용프로그램과 하드웨어 수준 사이의 가교 역할
- 모놀리식 커널: OS의 주요 구성요소를 모두 하나의 메모리 공간을 통해 제공, 모든 기능을 제공하고 있는 형태.
- 마이크로 커널: 최소한의 기능만 커널이 제공하고 그 외 기능은 커널 밖에서 제공한다. 커널 자체가 작아지기 때문에 더 심플
시스템 콜 인터페이스
- 프로세스나 스레드로부터 명령을 받는 인터페이스(키보드나 마우스 입력은 끼어들기러 처리된다.
- 디스크 액세스, 네트워크 요청 등
프로세스 관리
- 가동되고 있는 프로세스 관리와 CPU 이용 우선순위 등을 ‘스케줄’한다.
- 언제, 어떤 프로세스가 어느정도의 cpu코어를 이용할 수 있는지, 처리 우선순위를 어떻게 결정할 것인지 등을 관리하는 것이 역할
메모리 관리
- 서버상의 메모리를 단위크기의 블록으로 분할해서 프로세스에 할당
- 물리 메모리 공간의 최대치를 고려
- 프로세스가 이용하는 독립 메모리 공간을 확보하거나 상호 간의 참조 영역을 지키기 위해 독립성을 관리하는 등의 메모리 관리 역할
네트워크 스택
파일 시스템 관리
- 파일 시스템을 관리
- 파일 시스템용 인터페이스를 제공
- 물리 디스크에 제공된 데이터를 관리하는 기능
- 디렉터리 구조 제공, 액세스 관리, 고속화, 안정성 향상 등
장치 드라이버
- 디스크, NIC, HBA 등의 물리 장치와 작업
- 커널은 장치 드라이버를 이용해 그 아래에 있는 물리장치를 은폐
운영 체제의 기능
컴퓨터 시스템 운영
- 자원관리: 프로세서, 기억장치, 입출력 장치관리(효율성, 형평성)
- 응용프로그램들의 실행을 도와줌
사용자 지원
- 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공
- 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 전담
운영 체제의 분류
- 동시 작업 가능 여부
- 단일작업 → 한 번에 하나의 작업만 처리
- 다중작업 → 동시에 두 개 이상의 작업 처리
- 사용자의 수(여러 사용자가 동시에 접속 가능한가?/계정생성관련)
- 처리 방식
- 일괄처리(batch processing): 작업 요청을 일정량 모아서 한번에 처리, 작업 완전 종료까지 기다려야 함.
- 시분할(time sharing)→대화형(interactive): CPU작업 시간을여러 프로그램이 조금씩 나누어 쓰는 시스템, 짧은 응답시간
- 실시간(real-time): 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장 되어야 하는 실시간 시스템
- 경성 실시간 시스템: 주어진 시간을 지키지 못할 경우 매우 위험한 결과를 초래할 가능성이 있는 시스템
- 연성 실시간 시스템: 데이터가 시간을 맞추어 전달되어야 올바른 기능을 수행할 수 있는 시스템(위험한 결과를 초래하지는 않는다)
컴퓨터에서 여러 작업을 동시에 수행하는 것을 뜻하는 용어
- 다중작업 Multitasking
- 다중 프로그래밍 Multi-programming: 여러 프로그램이 메모리에 올라기 있음을 강조
- 시분할 Time sharing: CPU의 시간을 분할하여 나누어 쓴다는 의미
- 다충 처리 Multi-process
운영 체제의 자원 관리 기능
- 프로세스 관리자 → CPU: 컴퓨터를 통제하고 주어진 작업을 수행하는 장치
- [CPU 스케줄링]어떤 v프로세스에 CPU를 할당할 것인가?
- 프로세스를 생성, 삭제, CPU 할당을 위한 스케줄 결정, 프로세스 상태관리
- 메모리 관리자 → Memory: 컴퓨터의 작업에 사용되는 데이터를 일시적 또는 영구적으로 저장하는 장치
- [메모리 관리]한정된 메모리를 어떻게 나눠쓸 것인가?
- 메모리 공간에 대한 요구의 유효성 체크, 할당 및 회수, 공간 보호
- 파일 관리자 → Disk
- [파일관리]디스크에 파일을 어떻게 보관하지?
- 컴퓨터 시스템의 모든 파일을 관리, 접근 제한, 자원 할당 및 회수
- 장치 관리자 → I/O device: 컴퓨터에 신호와 정보를 보내는 입력장치와 컴퓨터의 연산을 결과로 내보내는 출력 장치
- [입출력관리]각기 다른 입출력 장치와 컴퓨터 간에 어떻게 정보를 주고 받게 하지?
- 컴퓨터 시스템의 모든 장치를 관리, 시스템의 장치를 할당, 작동 시작, 반환
- 그외