운영체제 1주차-1

Yk Lee·2023년 3월 11일
0

운영체제

목록 보기
1/8

Operating System

  1. 하나 이상의 프로세서의 하드웨어를 활용한다.
  2. 시스템 사용자들에게 서비스를 제공
  3. 여분의 메모리나 I/O 장치를 관리한다.

Basic Elements

processor, main memory, I/O moudles, System Bus

Processor

  1. 컴퓨터의 작동을 제어한다.
  2. 데이터 처리 기능을 수행한다.
  3. CPU(중앙 처리 장치,Central Processing Unit)이라고도 한다.

Main Memory

  1. 휘발성이 있다.
  2. 컴퓨터가 종료되면 메모리 내용이 사라진다.
  3. Real Memory or Primary memory라고도 한다.

I/O Modules

컴퓨터와 외부 환경사이에서 데이터가 다음과 같은 상황에서 움직인다.
1. Storage(스토리지) EX) 하드드라이브,ssd
2. 통신장비(Communications Equipment)
3. 터미널
-> 컴퓨터 명령 후 메인메모리로 외부 입력들을 옮겨 오도록 한다.

System Bus

위 세가지 요소를 연결하는 통로이다.

Top-Level View

PC: 다음 실행할 명령어의 주소를 가지고 있는 레지스터로, CPU가 현재 어디까지 실행을 완료하였고, 다음으로 실행해야 할 명령어가 무엇인지를 저장한다.
IR: 현재 실행 중인 명령어를 저장하는 레지스터로, 메모리에서 읽어온 명령어가 저장되어 있으며,CPU가 이를 시랭하는 동안 분석하고 해독한다.
MAR: 메모리에서 데이터를 읽거나 쓸 주소를 저장하는 레지스터로, CPU가 메모리에서 데이터를 읽거나 쓰려명 해당 데이터가 저장된 주로를 알야아하는데 MAR은 이러한 주소를 저장한다.
MBR: 메모리에서 읽은 데이터나 쓰려는 데이터를 저장하는 레지스터로, CPU가 데이터를 읽거나 쓸때의 데이터가 MBR에 저장된다.
I/O AR: 입출력 장치와 통신하기 위해 사용되는 레지스터로, CPU가 입출력 장치에서 어떤 작업을 요청하기 위해 해당 장치의 주소를 I/O AR에 저장한다.
I/O BR: 입출력 장치와 데이터를 주고받기위해 사용되는 레지스터로,CPU와 입출력 장치 간의 데이터를 I/O BR에 저장한다.

  • 레지스터 : CPU가 내부에서 매우 빠르게 액세스하며 중간 결과나 작업에 필요한 데이터를 저장하는데 사용된다.
  • 메모리 : 프로그램 및 데이터를 저장하는데 사용된다.

레지스터와 메모리의 차이점

레지스터는 CPU 내부에 존재하며 매우 빠른 속도로 액세스할 수 있으나 메모리는 CPU와 더 멀리 떨어져 있어 상대적으로 느린 속도로 액세스 된다. 또한 레지스터는 CPU 내부에만 존재하며 상대적으로 작은 용량을 가지고 있으나 메모리는 CPU 외부에 존재하며 대용량 데이터를 저장할 수 있다. 가격 면에서 레지스터가 비싸고 메모리는 저렴하다. 레지스터는 직접 액세스가 가능하며 CPU에서 직접 참조하며 사용되지만 메모리는 주소를 통해서 갑적적으로 액세스한다.

Microprocessor

  1. 휴대폰에 쓰이는 부품
  2. 단일칩 프로세서이자 가장 빠른 프로세서
  3. 멜터프로세서
  4. 각 칩(소켓)은 멀티코어를 가지고 있다.

Graphics Processing Unit(GPU)

  1. Single-Instruction-Multiple Data 기술을 사용하여 데이터 어레이에 효율적인 계산을 제공한다.
  2. 수치해석을 이용한다.
  3. 레이캐스팅에 적용되며 대규모 스프레드시트를 계산한다.

Digatal Signal Processors (DSPs)

  1. 오디오와 비디오 같은 스트리밍 시그널들을 다룬다.
  2. 모뎀과 같은 장치에 내장되어 사용된다.
  3. 인코딩/디코딩(음성 및 비디오)
  4. 보안 및 암호화를 지원

System on a chip (SoC)

  1. 휴대용 장치의 요구사항을 충족시키기 위해, 마이크로프로세서가 SoC에 정보를 준다.
  2. DSPs,GPUs,코덱,메인메모리 그리고 CPU와 같은 구성요소가 SoC 위에 있다.

Instruction Execution

  1. 프로그램은 메모리에 저장된 이련의 명령으로 구성된다.
    1단계: 프로세서가 메모리로부터 지시사항을 읽는다.
    2단계: 프로세서가 각각의 지시사항을 수행한다.

Fetch Stage

명령어를 메모리에서 읽어오는 단계로 컴퓨터의 명령어 실행 사이클 중 첫 번째 단계이며, CPU가 다음으로 실행할 명령어의 위치를 결정하고 해당 명령어를 메모리에서 읽어온다.

  1. CPU는 Program Counter(PC) 레지스터에서 다음 실행할 명령어의 주소를 가져온다.
  2. CPU는 MAR레지스터에 PC 레지스터에서 가져온 명령어의 주소를 저장한다.
  3. CPU는 메모리에서 해당 주소에 있는 명령어를 MBR 레지스터로 읽어온다.
  4. CPU는 MBR 레지스터에서 읽어온 명령어를 IR 레지스터에 저자안다.
  5. 마지막으로, CPU는 다음 실행 사이클을 위해 PC 레지스터를 업데이트한다(증분한다). 일반적으로, PC 레지스터는 현재 실행한 명령어의 크기만큼 증가한다.

fetch stage는 CPU의 성능을 결정하는 데 중요한 역할을 합니다. 명령어를 메모리에서 가져오는 데 소요되는 시간이 CPU 성능에 직접적으로 영향을 미치기 때문입니다. 따라서, fetch stage는 최적화가 필요한 중요한 단계입니다.

Execute Stage

CPU가 명령어를 실행하는 단계를 의미한다. Execute Stage는 CPU의 명령어 실행 사이클 중 두 번째 단계이며, Fetch Stage에서 가져온 명령어를 분석하고 해당 명령어에 따라 작업을 수행한다.

Execute Stage는 명려어의 유형에 따라 다양한 방식으로 동작할 수 있다. 예를 들어 , 산술 연산을 수행하는 경우 ALU를 사용하여 두 개의 데이터를 계산하고 결과를 레지스터에 저장한다. 또는 데이터를 메모리에 저장하거나 메모리에서 읽어올 수도 있다. 조건분기나 루프 처리를 수행하는 경우에는 CPU가 해당 명령어에 따라 PC 값을 변경하여 실행 흐름을 제어한다.

Execute Stage에서 수행되는 작업은 CPU의 구조와 명령어 세트에 따라 다르다. 명령어의 복잡도와 CPU의 성능에 따라 속도는 상이할 수 있으며 실행시간이 가장 긴 단계중 하나로 성능 최적화를 위해서는 Execute Stage를 잘 최적화해야 합니다.

Example of Progame Execution

Step 1
PC 레지스터에 300이라는 숫자가 있는데 이는 메모리 주소를 의미한다. 메모리에 300번 주소에 있는 1940 명령어를 읽어와 IR에 로드한다.
Step 2
이때 1940에서 first 4 bits, 즉 1이 partial list of opcodes 0001명령어를 수행하여 940 주소에있는 0003을 AC에 로드한다.(1이 코드 940은 주소)
이후 PC는 증분된다.
Step 3
증분된 301이라는 메모리 주소에서 5941 명령어를 읽어와 IR에 로드한다.
Step 4
5941에서 5를 이진수로 고치면 partial list of opcodes 0101로 941주소인 메모리에 있는 0002를 AC에 더한다.그래서 0005가 되며 이후 PC는 증분된다.
Step5
증분된 302라는 메모리 주소에서 2941 명령어를 읽어와 IR에 로드한다.
Step6
2941에서 2를 이진수로 고치면 partial list of opcodes0010으로 941주소인 메모리에 0005가 저장된AC 값을 941에 저장한다.

profile
AR개발자지망생

0개의 댓글