- 운영체제란 무엇인가
하드웨어~소프트웨어와 사용자 사이에 설치되어 사용자가 직접 하드웨어에 접근하지 않고 컴퓨터를 편리하게 사용할 수 있도록 함. 윈도우 같은게 설치되어 있지 않은 본체, 모니터, 키보드만 덜렁 주고 문서 작업하라고 하면 굉장히 어려울 것.
또한 소프트웨어가 하드웨어에 마구 접근하지 않게끔 중간에서 관리하는 역할도 함.
- 운영체제의 목적
사용자가 컴퓨터를 편하게 사용할 수 있도록 하는 것. 그리고 cpu, 메모리 같은 한정된 자원을 효율적으로 분배하여 최대의 성능을 끌어내는 것이 목적. *효율적으로 분배: 어떤 우선순위를 두고 얼마만큼씩 자원을 분배할지를 운영체제가 계산. 꼭 1/n이 효율적인 것이 아님.
- 운영체제의 분류
- 동시 작업이 가능하냐?
- 단일 작업: 한 번에 하나의 작업만 처리(ms dos..)
- 다중 작업: 동시에 여러 작업 처리
- 컴퓨터 한 대에 여러 유저가 동시에 사용(접근)할 수 있냐?
- 단일 사용자
- 다중 사용자
- 처리 방식이 어떤가?
- 일괄 처리(batch processing): 작업을 일정량 모아서 한꺼번에 처리,
- 시분할(time sharing)
- 현대 범용 컴퓨터의 운영체제 대부분이 이 방식으로 작업을 처리함
- 여러 작업을 처리할 때 cpu의 시간을 나누어서 쓴다는 의미
- 실시간(realtime OS)
- 데드라인이 있음, 정해진 시간 안에 작업에 대한 반드시 결과가 나옴을 보장해야 할 때 사용하는 시스템
- 그래서 특별한 목적을 가진 시스템(시분할 처리 방식 시스템은 '범용')
- 예) 미사일 제어, 반도체 장비, 공장 제어...
- 운영체제의 예
- unix 계열
- windows 계열
- ...
- 운영체제의 구조 (여기선 개괄적인 내용)
- cpu, 메모리, 하드 디스크, 입출력 장치(모니터, 마우스, 키보드..) 같은 컴퓨터 자원을 관리하는 것이 운영체제의 역할. 이것들을 관리하면서 생기는 이슈들을 하나씩 들여다 보면 운영체제의 구조가 보인다.
- cpu 스케줄링: 어떤 프로그램한테 cpu를 할당할까?
- 메모리 관리: 한정된 메모리를 어떻게 분배할까? 프로그램을 얼마나 메모리에 올릴까? (무조건 1/n 아님!)
- 파일 관리: 디스크에 파일을 어떻게 보관할까? 나눠서 저장? 연속적으로 저장?
- 디스크 스케줄링: 어떻게 하면 디스크 헤드의 움직임을 최소화 하면서 요청들을 많이, 빨리 처리할까(ex. 엘리베이터의 움직임)
- 입출력 관리: 인터럽터 기반
- 프로세스 관리
반응형