감히 운영체제를

[0829] [0904]

whale3 2022. 8. 29. 23:36

- 운영체제란 무엇인가

하드웨어~소프트웨어와 사용자 사이에 설치되어 사용자가 직접 하드웨어에 접근하지 않고 컴퓨터를 편리하게 사용할 수 있도록 함. 윈도우 같은게 설치되어 있지 않은 본체, 모니터, 키보드만 덜렁 주고 문서 작업하라고 하면 굉장히 어려울 것. 

또한 소프트웨어가 하드웨어에 마구 접근하지 않게끔 중간에서 관리하는 역할도 함.

 

- 운영체제의 목적

사용자가 컴퓨터를 편하게 사용할 수 있도록 하는 것. 그리고 cpu, 메모리 같은 한정된 자원을 효율적으로 분배하여 최대의 성능을 끌어내는 것이 목적. *효율적으로 분배:  어떤 우선순위를 두고 얼마만큼씩 자원을 분배할지를 운영체제가 계산. 꼭 1/n이 효율적인 것이 아님.

 

- 운영체제의 분류

  1. 동시 작업이 가능하냐?
    • 단일 작업: 한 번에 하나의 작업만 처리(ms dos..)
    • 다중 작업: 동시에 여러 작업 처리
  2. 컴퓨터 한 대에 여러 유저가 동시에 사용(접근)할 수 있냐?
    • 단일 사용자
    • 다중 사용자 
  3. 처리 방식이 어떤가?
    1. 일괄 처리(batch processing): 작업을 일정량 모아서 한꺼번에 처리, 
    2. 시분할(time sharing)
      • 현대 범용 컴퓨터의 운영체제 대부분이 이 방식으로 작업을 처리함
      • 여러 작업을 처리할 때 cpu의 시간을 나누어서 쓴다는 의미
    3. 실시간(realtime OS)
      • 데드라인이 있음, 정해진 시간 안에 작업에 대한 반드시 결과가 나옴을 보장해야 할 때 사용하는 시스템
      • 그래서 특별한 목적을 가진 시스템(시분할 처리 방식 시스템은 '범용')
      • 예) 미사일 제어, 반도체 장비, 공장 제어...

- 운영체제의 예

  • unix 계열
  • windows 계열
  • ...

- 운영체제의 구조 (여기선 개괄적인 내용)

  • cpu, 메모리, 하드 디스크, 입출력 장치(모니터, 마우스, 키보드..) 같은 컴퓨터 자원을 관리하는 것이 운영체제의 역할. 이것들을 관리하면서 생기는 이슈들을 하나씩 들여다 보면 운영체제의 구조가 보인다.
  • cpu 스케줄링: 어떤 프로그램한테 cpu를 할당할까?
  • 메모리 관리: 한정된 메모리를 어떻게 분배할까? 프로그램을 얼마나 메모리에 올릴까? (무조건 1/n 아님!)
  • 파일 관리: 디스크에 파일을 어떻게 보관할까? 나눠서 저장? 연속적으로 저장?
    • 디스크 스케줄링: 어떻게 하면 디스크 헤드의 움직임을 최소화 하면서 요청들을 많이, 빨리 처리할까(ex. 엘리베이터의 움직임)
  • 입출력 관리: 인터럽터 기반
  • 프로세스 관리
반응형

'감히 운영체제를' 카테고리의 다른 글

들어가며  (0) 2022.08.29