[운영체제(OS) 목차 &책 추천]
운영체제를 시작하기 전에,
컴퓨터 구조 또는 컴퓨터 시스템 구조 과목을 먼저 학습하고 시작하는 것을 권장합니다.
다 했다는 가정하에(?)
오늘은 간단한 리프레쉬(refresh)를 통해 컴퓨터 구조를 살짝만 짚고 넘어가는 시간이 될거예요
운영체제가
1. 하드웨어를 몰라도 쉽게 사용할 수 있도록 하드웨어를 이용해서 프로그램 할 수 있도록
2. 하드웨어가 효율적으로 동작할 수 있도록 놀지 않게 1000프로의 성능을 발휘할 수 있게
해는 역할을 한다고 저번 포스팅에서 말했었어요~
그래서 운영체제와 하드웨어는 뗄레야 뗄 수 없는 관계입니다.
그래서 컴퓨터 구조는 당연히 알고 있어야 해요.
운영체제의 일은 하드웨어를 관리하는 일이니까요
컴퓨터 구조
자아ㅏㅏ
컴퓨터를 이루고 있는 구조를 보여주는 아주 기본적인 사진이예요.
CPU 관리
우리가 보통 사용하는 컴퓨터에는 일단 하나 또는 여러개의 CPU가 있어요. CPU가 하는 일은 결국 명령어를 수행하는 일이예요. 컴퓨터의 뇌라고 불리는 핵심 부품이죠! 따라서 운영체제 과목을 배우면서 가장 먼저 학습하게 될 부문은 CPU관리입니다. 가장 중요하고 비싼 자원인 CPU를 운영체제가 어떻게 관리하는지 하나씩 살펴보게 될거예요.
또 사진 속에 CPU외에 메모리와, 주변 장치 컨트롤러들(device controller = 장치 제어기)이 있고 이를 버스가 연결해주고 있는 것을 볼 수 있어요
메모리 관리
CPU관리 다음은 메모리 관리를 배우게 될 거예요
가장 기본적인 메모리 ROM하고 RAM은 컴퓨터 구조 시간에 배웠을 거예요.
ROM은 전원이 꺼지더라도 데이터가 계속 남아있는 그런 메모리이기 때문에 컴퓨터를 딱 키면 부팅되는 정보는 다 ROM에서 불러들인거죠.
RAM, ROM 통틀어서 즉 메모리를 어떻게 운영체제가 관리하는 지를 차차 알아볼거예요
운영체제가 하고 있는 메모리 관리를 한 마디로 하면 Virtual Memory Management 가상 메모리 관리 입니다. 많이 들어봤죠? ㅎㅎ
I/O 관리
CPU는 알겠는데 device controller는 뭔가요?
device controller에 대한 개념을 들어가기 전에 한숨 돌리고 갈게요! 운영체제의 포스팅이 도움이 되셨다면 클릭 ↓
device controller가 뭔가요?
컴퓨터에 USB 또는 외장하드, 모니터 등 바로 꼽으면 연결해서 쓸 수 있잖아요?
저런걸 주변장치라고 통칭하는데 주변 장치는 크게 입력 장치와 출력 장치, 저장 장치로 나눌 수 있어요.
그림처럼 모니터나 프린터, 마우스, 키보드, USB와 같은 것들은 모두 주변 장치에 해당합니다.
사실 이러한 주변장치들은 플러그와 소켓을 통해 연결됩니다. 여기서 이 소켓은 device controller와 이어져있어요. 요 아이가 버스를 통해 CPU와 직접적으로 통신을 한답니다!
가끔 어떤 장치를 연결하면 드라이버를 다운로드 받으라는 창이 뜨는 것을 본적이 있을거예요. 드라이버는 운영체제가 장치들과 호환되게 해주는 하나의 코드고(소프트웨어), 이 코드를 디바이스 컨트롤러가 인식하는거라고 이해하면 됩니다! 말그대로 코드를 인식한 후 장치를 제어해줘요.
I/O controller에는 명령을 저장하는 instruction register(IR)와 데이터를 저장하는 data register가 내부에 있어요. 즉 CPU에서 I/O 장치에 명령을 내릴 게 있으면 이 instruction register에다가 명령을 쭈우욱 집어넣어요. CPU가 명령을 내렸는데 이 명령을 일차적으로 장치에 바로 내릴 수가 없으니까 device controller에다가 명령을 내리는거예요. 데이터를 읽어라!!라는 명령을 하면 이 controller가 아 이 명령을 수행하는구나 해서 디스크에서 데이터를 읽어가 명령어 순서대로 수행을 하는겁니다.
자 내가 키보드를 연결했어요. 그리고 타자를 탁 탁 칩니다. device controller러는 CPU에게 야 애가 타자치고 있으니 처리해줘 라는 의미로 인터럽트를 딱 걸죠 (운영체제와 장치의 중간 다리 역할!) 그러면 이제 어떤 키가 눌려졌는지 CPU가 읽어야겠죠. CPU가 이 키보드 controller에 data register에 있는 그 값을 읽어옴으로써 어떤 키가 눌러졌는지 알 수 있는거랍니다!
자세한 내용은 컴퓨터구조 시간에 배워서 알 고 있을 것이라고 생각하고 이 정도로 넘어갈게요.
운영체제 뒷 부분인 I/O 파트에서도 자세히 다시 언급되니 걱정하지말고 이정도로 이해하고 있기~!
자 이렇게 컴퓨터 구성 요소인 CPU와 I/O 그리고 이 둘을 통제해주는 I/O controller(=device controller)에 대해서 알아봤어요
메모리 관리를 배우고 나면 운영체제가 하드웨어 장치 I/O를 어떻게 관리하는지 배우게 될거예요
즉 운영체제 과목에서는 컴퓨터를 이루는 대표적인 하드웨어
1. CPU를 어떻게 관리하는지
2. 메모리를 어떻게 관리하는지
3. I/O장치를 어떻게 관리하는지
에 대해서 배웁니다ㅎㅎ
'별걸다하는 IT > 운영체제 OS' 카테고리의 다른 글
[운영체제]PCB (Process Control Block)란? PCB 정보 & Context Switching 문맥교환 & Overhead 오버헤드 (12) | 2019.01.31 |
---|---|
[운영체제]Process Address Space 메모리내 프로세스 구조 (Code segment, static data 등) (4) | 2019.01.31 |
[운영체제]시스템에 따른 스케줄링의 목표 (Scheduling goals) (0) | 2019.01.30 |
[운영체제]Multilevel Queue 다단계큐, 멀티레벨큐 (3) | 2019.01.30 |
[운영체제]CPU burst VS I/O burst (5) | 2019.01.27 |
최신 댓글