
본격적으로 운영체제(OS)에 대해서 다루기 전에 미리 알아두면 좋은 개념들에 대해서 포스팅 해볼 예정이다.
운영체제(OS)는 Operating System의 약어이며 컴퓨터의 하드웨어를 제어하고 응용 소프트웨어를 위한 기반 환경을 제공하여, 사용자가 컴퓨터를 사용할 수 있도록 중재 역할을 해 주는 소프트웨어를 말합니다. 네이버 지식백과
사전적인 의미는 다음과 같다고 한다.
다음 포스팅에서 제대로 알아볼 예정이니 이번 포스팅에서는 느낌만 알고 넘어가도록하자.
앞으로 포스팅 할 운영체제 내용에 있어서 기본적으로 숙지하고 있어야 하는 10가지 개념들에 대해서 알아보자.
(위의 그림에서 CPU와 Main Memory를 제외한 모든 것은 device라고 생각하면 된다.)내부기억장치(internal storages) 는 registers, caches, Main Memory를 뜻하며 휘발성(volatile) 메모리이다. 이들은 편의상 Memories라고 부른다.외부기억장치(external storages) 는 HDD나 SSD를 뜻하며 비휘발성(non-volatile), 즉 영구적인 메모리이다.
Load 는 프로그램을 실행시키기 위해서 기억장치로부터 파일을 가져오는 것을 의미한다.Store 는 파일들을 기억장치로 옮겨 저장하는 것을 의미한다.
Main Memory에는 2가지 구조가 있다.Illinois Architecture : 1개의 memoryHarvard Architecture : 2개의 memory (명령어 메모리 + 데이터 메모리)ctrl + s 를 누르는 것은 내가 작성한 프로그램이 아니라 이미 작성된 프로그램을 실행만 시키는 것이기 때문에 OS Program이라고 할 수 있다. CPU(Central Processing Unit)의 특수한 목적을 가진 레지스터들에 대한 설명이다.
주로 컴퓨터 구성에서 다루지만 알고 있으면 앞으로의 포스팅에서 도움이 될 것 같아서 살짝 포스팅해본다.
각각의 레지스터들의 역할을 구분할 줄 알면 이해에 도움이 될 것이다.
위의 그림은 일반적인 CPU의 레지스터들과 메모리를 나타낸 그림이다.
CPU는 데이터 유닛(Data Unit)과 제어 유닛(Control Unit)으로 구성되어있다.
위의 그림이 데이터 유닛(Data Unit)이며 위에서 다뤘던 CPU register들과 ALU(Arithmetic and Logic Unit)로 구성되어있다.
데이터 유닛이 작동하는 예를 들어 보면 PC에서 AR로 data를 보내고 싶다면 MUX for BUS의 selection line인 S0 S1 S2를 010(2진수로 2를 의미 = PC)으로 설정하고 AR의 LD만 1로 설정하고 나머지 register들의 LD를 0으로 설정하면 AR ← PC, 즉 PC의 data가 AR로 보내지는 명령이 수행되는 것이다.
제어 유닛(Control Unit) 의 주 업무는 명령어 해독(decode), 명령어 패치(fetch), 실행 흐름 제어 정도이다.
즉, data들이 어떻게 이동하게 할지 각각의 CPU 구성요소들에게 어떠한 동작을 할지 IR에 보관되어 있는 명령어(OPCODE)를 판독해 신호를 주는 것이다.
따라서 제어 유닛은 진정한 의미의 두뇌 라고 할 수 있다.
명령어 집합 구조(ISA)는 모든 CPU에서 지시를 하는 방법을 의미한다.
아래의 그림처럼 총 3가지 방법이 존재한다.
기억 장치 참조 명령(Memory Reference Instruction) 는 memory를 참조하여 명령을 지시하는 방법이다.
기억 장치 참조 명령의 경우 CPU를 설계할 때 있어서 가장 중요한 그림이라 할 만큼 중요하다.
여기서 OpCode는 000 ~ 110까지만 있는 것을 확인할 수 있는데 그 이유는 다음과 같다.
제어 유닛 그림에서 IR이 [ I | Opcode | Address ]로 구성된 것을 확인할 수 있는데, OpCode가 111인 경우에는 I가 0인 경우와 1인 경우에 따라서 하는 지시가 다르기 때문이다.
OpCode = 111 and I = 0 : memory는 참조하지 않으며 Register Operation을 따른다.
OpCode = 111 and I = 1 : memory는 참조하지 않으며 I/O Operation을 따른다.
AND, ADD, LDA, STA, BUN, BSA, ISZ 가 존재한다.
I = 0 : 직접 주소 지정 명령(Direct Addressing instruction)에 의해 메모리 지정
I = 1 : 간접 주소 지정 명령(Indirect Addressing instruction)에 의해 메모리 지정
(이때 7xxx 나 Fxxx는 존재하지 않는데 왜냐하면 Opcode 111은 메모리를 참조하지 않기 때문이다.)
CPU는 오로지 아래의 Instruction Cycle의 1 - 6 번까지의 과정만을 반복 수행하는 것이다.
메모리에 있는 명령어를 IR로 가져오기 위해서는 AR은 Memory로 address를 전달할 수 있지만 PC는 Memory로 address를 바로 전달할 수 없으므로 먼저 AR ← PC를 수행한다. 그러고 나서 AR에 있는 address를 Memory로 전달하여 IR로 옮겨주는 IR ← M[AR]을 수행한다.
I ← IR(15 = I), D0.... D7 ← Decode IR(12-14 = Opcode), AR ← IR(0-11 = Address)
I 와 D7의 값에 따라서 위와 같이 4가지 종류가 발생할 수 있다.D7=0 and I=0 : 직접 주소 지정으로 address 자체가 effective addressD7=0 and I=1 : 간접 주소 지정으로 한 번 더 계산을 하여 effective address를 확인D7=1 and I=0 : Register - reference instruction 실행D7=1 and I=1 : I/O instruction 실행
위의 과정을 그림으로 나타낸 것이 바로 위의 그림이다.
이번 포스팅에서는 운영체제의 사전적인 의미, 10가지 개념, CPU에 대해서 간략하게 알아보았다.
다음 포스팅에서는 본격적으로 운영체제에 대해서 알아보도록 하겠다.
👉🏻 다음포스팅으로 이동하려면 여기로
퍼가요~ㅋㅋㅋㅋㅋㅋㅋㅋ