2021-09-11

0911 운영체제의 이해

 1. 운영체제의 역할 : 하드웨어제어, 성능, 편리성

특히 하드웨어 제어역할 매우 중요. 운영체제는 마치 정부와 같다. 다양한 리소스(국토, 돈, 사람등등..) 을 제어하여, 야생마와 같은 컴퓨터를 관리하는 것이다. 

하드웨어 리소스의 종류 : cpu, 랜카드(네트워크 통신담당), 메인 메모리, 마우스, 키보드, 모니터, 등등 모든 물리적인 것들 포함한다. 컴퓨터안의 작은 장치들 모두모두!!

mount 와 umount같은 명령어가 왜 있는거지 생각했는데 - 내가 당연히 생각하고 있었던. 하드웨어와 하드웨어의 연결을 위한 아주 중요한 명령어였던 것이다!! (요새는. plug& play로 자동지원되니까.. 이런 생각 자체를 해본적이 없었다. )

정부는 다양한 부서가 있고, 부서별로 명령을 내려서 해당 자원이 효율적으로 사용될 수 있도록 사령탑. 운영체제도 이와 똑같다. 스스로 일을 하는 것은 아니고, 명령을 내리는 사령탑이고 지휘관이다. 그중 단연 톱으로 중요한 부서는 processor를 제어하는 부서이다. 

컴퓨터를 구성하고 있는 다양한 요소 중 cpu는 연산을 담당하는데 , 이 연산을 위해서는 메모리 공간 (연산결과를 저장) & processor가 필요하다. 이것을 운영체제가 알아서 해준다. 운영체제가 없었다면 우리는 프로그램을 실행하기 위해 일일이 load하고 제어하는 일을 해야했을 것이다..

2. 멀티프로세싱

여러개의 작업을 실행할 수 있다. 단일cpu 라고 가정했을때. cpu는 연산만 담당하기 때문에 출력을 요청하면- 그동안 idle한 상태가 된다. 이것은 매우비싼 자원인 컴퓨터를 이용하는 입장에서. 매우 불만인 것이다. 쉼없이 일해라 cpu!!이를 위해서, - 아 그럼, 메모리에 여러개 프로세스를 올려두고, io작업이 일어나면 다른 프로세스를 바로 돌릴수있게 하자. 하는 식으로 디자인하게 되었다.

이것때문에 고민해야 할 것들이 많아졌다. -> 메모리의 어디에 해당 프로세스를 저장할 것인가? 하는 장소문제. 프로세스들을 어떤 순서로 돌릴것인가? 하는 스케줄링 시간문제. 

3. time-sharing 시분할.

엄청나게 짧은 시간동안 멀티프로세싱을 돌리면, 너무 빨라서 마치 동시에 여러 작업이 수행되는 것처럼 느껴진다. 이를통해, interactive한 컴퓨터를 구현할 수 있게 되었다. 매우매우슬로우모션으로 본다면, 사실은 한번에 한개의 작업만 처리하고 있다. 하지만 너무너무 빨라서, 우리는 마치 컴퓨터가 바로바로 나의 요청에 응답해주는 것처럼 느낀다.

4. 인터럽트 기반 

interrupt란 무엇인가? 이것은 마치 운영체제에게 야~!! 하고 말거는 것이다. 지금 하는 일을 중단하고 어떠한 루틴을 수행하라! 라고 말하는 것이다. 운영체제는 ROM에서 부팅되어 RAM에 상주하고 있다. 그리고 어떠한 이벤트를 통해 interrupt가 발생하면, 운영체제는 해당 이벤트에 묶인 루틴을 수행한다. 

이 인터럽트에는 하드웨어기반 인터럽트와 소프트웨어 기반 인터럽트가 있다. 하드웨어 기반은 쉽게생각하면 마우스 움직이기. 사용자가 마우스를 움직이는 이벤트- 인터럽트가 발생했고, 운영체제는 user mode에서 kernel mode로 들어가서 , 해당 인터럽트에 해당하는 루틴을 수행한다(즉, 마우스를 움직인 것을 모니터 화면으로 보여주는 루틴 . 이것을 위해서는 모니터 하드웨어의 협력을 명령하게 될 것이다.) 

댓글 없음:

댓글 쓰기

0328 fdisk, mkfs, mount, fstab

 1. 하드디스크를 붙인다. 2. fdisk -l로 하드디스크를 확인한다.  - interactiive한 커맨드모드 사용하여 (m) 붙인 하드디스크의 파티셔닝을 한다.  - 마지막에 w를 해야 실제로 반영이 된다.  3. mkfs를 하여 어떤 파일시스...