본문 바로가기

카테고리 없음

[운영체제] 1주차 - 강의소개

운영체제란?

좁은 의미의 운영체제 = 커널

- 운영체제의 핵심 부분으로, 부팅 시 메모리에 올라가는데, 해당 메모리에 상주하는 부분을 말한다.

 

운영체제의 목적

운영체제의 계층구조를 보았을 때, 하드웨어, 사용자와 관련이 있을 것임을 알 수 있다.

  1. 자원을 효율적으로 관리(가장 중요한 역할)
    • 자원의 종류 : 하드웨어, 소프트웨어(프로세스, 파일, 메세지 등)
  2. 사용자에게 컴퓨터를 편리하게 사용할 수 있는 환경을 제공한다

 

몇가지 용어

  • Multitasking
    • 여러 태스크가 돌아가고 있다.
    • 사실 cpu는 한번에 하나의 프로세스만 돌릴 수 있음
  • Multiprogramming
    • 메모리 강조. 여러 프로그램메모리에 동시에 올라가 있음을 강조
  • Time sharing
    • cpu를 강조함. 시간을 분할하여 cpu를 나누어쓴다는 것을 강조

 

  • Multiprocessor
    • 하나의 컴퓨터에 cpu가 여러개 있는 것을 말함

 

운영체제의 예 - UNIX

  • 코드의 대부분을 c언어로 작성
    • 운영체제를 어셈블리어로 만들기 힘들어서 c언어로 만들었다.
    • 이로 인해, 높은 이식성을 가진다. 특정 기계에 국한되는 어셈블리어로 제작한 것이 아니라, 어셈블리어와 독립된 언어인 c언어를 사용했기 때문이다. 이는 다른 컴퓨터에서 단지 c언어를 컴파일해서 운영체제로 사용하면 된다는 것이다.
  • 높은 이식성
  • 최소한의 커널 구조
    • 커널이라 함은, 메모리에 상주하는 부분이라고 하였다.
  • 다양한 버전
    • Linux가 유닉스의 버전임

 

운영체제의 구조

CPU

  • 스케줄링

 

메모리

  • 무조건 프로세스별 1/n이 아니라, 특정 프로세스한테 메모리를 몰아주는 것이 효율적인 경우 발생.
  • 그럼, 어떤 것을 메모리에서(Disk로) 쫒아내야 하는가? 가 이슈가 된다
    • cpu에서 머지 않아 사용할 것은 냅두고, cpu가 오래 사용하지 않을 것의 메모리를 쫒아내는 방식
    • 그럼, 미래를 예측해야한다!
      • 메모리에 올라온 이후로, 사용이 많이 되었다면 -> 미래에도 사용될 가능성 높겠구나
      • 메모리에 올라온 이후로, 사용이 적게 되었다면 -> 미래에도 사용될 가능성이 적겠구나
  • cpu가 하나의 프로세스를 원활하게 실행시키기 위한, 특정 메모리 용량이 있다. 그것을 보장해주어야 한다. 

 

디스크

  • 파일을 어떻게 보관을 하는가
    • 연속적? 조각조각?
  • 헤드로 읽어들이므로, 메모리와는 특성이 다르다
  • 스케줄링
    • 들어온 순서대로? 헤드에 가까운 위치를 먼저?
    • 헤드로 읽어들이기 때문에, 어떻게 하면 헤드의 이동을 최소화할 수 있는가? 가 메인 이슈가 된다

 

I/O 디바이스

  • cpu, 메모리 같은 것에 비해 매우 느리다
  • 컴퓨터와, 
  • 입출력 관리
    • 인터럽트에 기반하여 동작
      • cpu는 항상 자기 할 일을 하고 있다
      • i/o 장치가 할 일이 있으면, cpu에게 인터럽트를 걸어서 자신이 할 일이 있다는 것을 알림
      • cpu가 최대한 방해받지 않도록 하기

 

소프트웨어를 관리하는 것

  • 프로세스 생성, 삭제
  • 자원 할당 및 반납 

 

운영체제에 대한 태도

  • 내가 운영체제가 되었다고 생각하고, 어떻게 하드웨어를 관리할지 와 같은 것들을 생각해보면 된다.
  • 뇌를 통해 인간의 신체를 통제하듯이, 운영체제가 컴퓨터 하드웨어를 통제한다.(하드웨어 개별적으로는 고철덩어리에 불과)