728x90

주니온님의 인프런 '운영체제 공룡책 강의' 와 'Operating System Concepts, 9th edition '을 참고하여 작성하였습니다.

2-1. 운영체제의 개념

운영체제는 컴퓨터에서 항상 수행되는 프로그램으로, 일반적으로 "커널(kernel)" 이라고 불린다.
따라서 커널이 OS이고, OS의 핵심이다.

2-2. 컴퓨터 시스템의 구조

부트스트랩?

보통 컴퓨터를 킬 때, 부팅한다고 한다. 부팅이라는 말은 부트스트랩에서 나온 말이다.

  • 부트스트랩은 컴퓨터가 켜지자마자 가장 처음으로 하는 일이며, 메모리에 운영체제를 로딩하는 일을 말한다.
  • 흔히 말하는 펌웨어가 부트스트랩이다.

우리가 컴퓨터를 키면 메모리에는 아무것도 없는 상태이다. 왜? 컴퓨터의 주기억장치는 대부분 RAM이기 때문. 따라서 ROM(비휘발성 메모리)에 저장되어있는 OS를 메모리(RAM)에 로딩해주는 것이 필요하다.

RAM vs ROM

  • RAM : Ramdom Access Memory로 휘발성 메모리, CPU의 운영체제(OS)와 응용프로그램, 현재 사용 중인 데이터를 유지하고 있는 메모리
  • ROM : Read Only Memory로 비휘발성 메모리

왜 컴퓨터의 주기억장치는 RAM일까?

  • ROM을 쓴다고 가정, ROM은 데이터에 접근하는데 오랜 시간이 걸리기 때문! 따라서 ROM은 보조기억장치로 사용된다.

인터럽트

하드웨어가 어떤 액션을 했는지 CPU에 알려주는 것
예를 들어 키보드가 있다고 생각해보자. 키보드가 'a'를 눌렀다는 것을 CPU는 어떻게 알 수 있을까? 이때 인터럽트라는 방법으로 알려준다.

  • CPU와 I/O device가 통신하는 방법 중 하나
  • CPU에 signal을 보내는 방법 (버스를 통해)

하드웨어는 언제나 인터럽트를 trigger 할 수 있다. (따라서 인터럽트는 하드웨어가 생각하는 거)
인터럽트에는 계층 구조가 있다.
CPU와 I/O device는 동시에 실행될 수 있다.

CPU의 메모리 구조

CPU의 메모리는 용량과 접근속도에 따라 여러개의 계층구조로 이루어져 있다.

  • 주기억장치(main memory) : CPU가 direct하게 접근할 수 있다.
  • 보조기억장치(secondary storage) : 주기억장치의 보조역할을 하며, 대용량의 데이터 저장과 비휘발성 메모리이다.
  • Magnetic disks : HDD
  • Electronics disks : SSD

registers?

  • 컴퓨터의 프로세서 내에서 자료를 보관하는 아주 빠른 기억 장소이다. 일반적으로 현재 계산을 수행중인 값을 저장하는 데 사용된다. (출처, 위키백과)

MultiProgramming

  • 프로세서가 입출력 작업의 종료를 대기할 동안 다른 프로그램을 수행할 수 있도록 하는 것
  • CPU의 사용 효율을 높일 수 있다.
  • 어떤 프로그램을 먼저 처리할지에 관해 Job Scheduling이 필요하다.

MultiTasking(Time Sharing)

  • 하나의 CPU로 여러 작업을 번갈아가며 수행하는 것
  • 사용자의 입장에서는 동시에 여러작업을 하는 것 처럼 보이지만, 사실 여러작업을 빠르게 번갈아가면서 수행하는 것임!
  • CPU Scheduling이 필요하다 (=Job Scheduling과 유사)

멀티태스킹처럼 하드웨어에도 여러개의 OS를 돌릴 수 있을까?

  • H/W OS 사이에 VMM을 끼워넣으면 가능하다.
  • 예) VMware와 같은 프로그램을 사용하면 하나의 하드웨어에서 여러개의 OS를 사용할 수 있다.

System Call

  • 컴퓨터 응용 프로그램과 OS가 인터페이스 하는 방식
  • System Call을 호출하는 것을 API라고 한다.

... 내용 추가 예정

728x90

'Computer Science > 운영체제' 카테고리의 다른 글

1. Introduction  (0) 2021.10.09
복사했습니다!