반응형

✔️  유투버 알렉님이 공부하신 운영체제의 pdf파일을 받아 적은 글 입니다.

✔️ 비전공자인 제가 느끼기에 전문용어는 쉽게 풀어서 쓸 예정입니다.

✔️ 총 20개로 나눠서 업로드 할 예정입니다.

 

컴퓨터 시스템을 이루는 3대 구성요소 : CPU, 메모리, 디스크

+ 여기에 I/O까지 추가 된다면 그것을 컴퓨터를 이루는 기본 골격이라고 한다.

 

- 특징

1. 순차적 수행 : 명령 / 데이터를 로드 / 실행 / 저장

2. 데이터 / 프로그램 메모리를 하나의 버스로 접근 (아직 몰라도 됨)

 

CPU

: 각종 연산을 수행하고, 기억장치(메모리)에 기억되어 있는 명령어들을 실행

 

✔️ 알아야 할 단어

주파수 : 1 초에 몇 번이나 진동하는 가?

Hz(헤르츠) : 1초에 한번 왕복 운동이 반복됨을 의미 (100Hz는 1초에 100번 반복 혹은 진동)

 

CPU는 일정한 속도로 동작하기 위해서는 일정한 간격으로 전기적 신호를 공급하는데, CPU에 전기적으로 공급되는 신호를 Clock이라 함.

Clock : 주기적으로일정한 신호를 보내주는

 

CPU는 이 신호(클락)을 받고 데이터를 주거나 받고 처리

+ 이 신호 한번에 의해서 CPU에서 한 개의 명령이 처리된다.

 

 

CPU의 내부 구성

1. 산술 / 논리 연산 장치 : 덧셈, 곱셈 등 수행

2. 제어 장치 : 신호를 통해서 데이터 흐름(순서 등)통제

3. 레지스터 : CPU 내부의 메모리

 

하는 일

1. 산술 / 논리 연산 장치 : 레지스터에 저장된 데이터를 이용하여 덧셉, 곱셈 등 산술 연산 수행

2. 제어 장치 : CPU나 주변기기들을 컨트롤하는 장치

3. 레지스터 : 캐시(자주사용 하는 데이터나 값을 저장한 임시장소) 또는 메모리로부터 읽어 온 데이터 저장

 

 

레지스터 구성 놈놈놈!

1. IR : 현재 수행 중에 있는 명령어 부호를 저장하고 있는 놈 (저장놈)

2. PC : 명령저장메모리주소를 가리키는 놈 (가리키놈)

3. AC : 산술 및 논리 연산의 결과를 임시로 기억하는 놈 (기억놈)

 

명령어 구조

: 시스템이 특정 동작을 수행시키는 작은 단위

 

구성

1. 동작 코드 : 실행 동작 구분

2. 오퍼랜드 : 명령어 실행을 위한 자료나 저장 위치

 

 

 

CPU가 하나의 명령을 처리하는 과정 

1. 읽기 : 메모리에서 명령 가져옴

2. 해석 : 명령 해석 

3. 실행 : 명령 수행 

4. 기록 : 결과 기록

 

 명령 배달의 민족 주!문! -> 조리법으로 치킨 튀기기 완료 -> 배달중~ -> 별다섯개!!

 

이때, 배달(명령을 수행)을 하기 위해서 영수증에 있는 집주소를 가져오는데(명령어 가지고오기) 이를, Fetch라 한다.

 

.

.

명령어 호출 사이클 (순서)

레지스터를 구성하는 놈중 하나인 PC(가리키놈)는 다음으로 fetch할 명령어 주소를 갖고 있다.

1. 프로세스는 PC가 가리키는 주소 위치에서 명령어를 가져오면서 PC를 증가시키고 명령문은 IR(저장놈)에 Load된다.

2. load된 명령어는 수행이 진행되는데, 명령어를 수행하는 과정해서 가져오는 명령어를 실제 ALU(산술/연산)에서 처리하게 된다.

 

즉, PC가 가리키는 다음 명령어를 프로세스가 가져옴 -> PC증가 -> IR에 Load됨.(게임 로딩중.. 할때 그 로드 맞음.)

-> ALU에서 명령어 수행. 


명령어 처리의 두가지 방식 (RISC, CISC)

 

RICS : 단순한 명령을 조합해서 하나의 기능을 수행, 하나의 사이클로 명령어 수행

(여럿이 모여 하나가 되어 한놈을 두까팸..)

 

 

CISC : 하나의 기능에 하나의 명령, 여러 사이클로 명령어 처리

 

 

 

병렬 처리

: 명령어를 병렬로 동시에 처리하는 것을 의미 

 

방법

1. 실행 할 수 있는 코어를 여러개 두기

2. 쓰레드를 여러 개 하기

3. 기본 명령어를 여러개 수행 

 

기본 명령어 수행과정에서의 한계

이 과정에서, 각각 하나의 클럭(주기적으로 전기 신호를 공급)을 소비하게 된다.

하나의 명형을 수행하는데 4개의 클럭이 소비된다는 말이다.

 

문제점 : 읽기 -> 해석 

읽기를 처리하는 유닛은 유휴상태(아무것도 안함)가 된다. 말 그대로, 비효율성을 갖게 된다.

 

해결 방법 1

파이프 라인 : 읽기가 끝나면 밑에 있는 읽기가 실행 되는 과정(쉬... 쉬지말고 일하라 !!!)

CPU에서 하나의 명령을 처리하는 과정에서 미리 다음에 실행할 명령을 가져오는 것.

 

해결 방법 2

슈퍼스칼라(양) : 슈퍼양! 양으로 밀어 붙여!!

ALU(산술/연산)을 여러 개 포함시켜 cycle마다 한 개 이상의 명령어들이 동시에 실행 될 수 있도록 하는 기술

 

해결 방법 3

슈퍼파이프라인 : 단계세분화. 각 단계를 엇갈리게 중첩 시키는 것

 

해결 방법 4

슈퍼스칼라 + 슈퍼파이프라인 = 슈슈슈슈슈슈슈슉발라..ㅁ아!!!

양많이 + 여러개 중첩함으로써 명령어를 여러 개 처리! (2-way)

해결 방법 5

3-way VLIW

- 동시에 수행될 수 있는 명령어들을 컴파일 수준에서 추출하여 하나의 명령어로 압축하여 실행

- 컴파일러가 동시실행 가능한 놈들을 검출해서 하나의 명령어로 압축!

- VLIW의 명령어로 압축되므로, 기존 하드웨어나 소프트웨어와의 호환성 결여 발생

 

 

파이프라인 기법의 문제점과 보안책

- 문제점

1. 병령수행의 동작이 서로 독립적이어야 한다는 점.

2. 명령어 오동작 우려가 있다.

3. 결과가 다음 명령어에 영향을 미칠 때, 처리가 어렵다.

 

간단하게 읽어보자!

 

간단하게 읽어보자2!

 

 

EPIC

 

반응형

+ Recent posts