Skip to content

Latest commit

 

History

History
199 lines (148 loc) · 6.55 KB

220204.md

File metadata and controls

199 lines (148 loc) · 6.55 KB

THEMA 22 Flynn의 분류

1. 플린의 분류

명령어흐름 데이터흐름 제어장치 처리장치 특징
SISD single single 1개 1개 시간적 병렬, 파이프라인 계열
SIMD single multiple 1개 n개 동기 공간적 병렬, PE(Processing Element), 배열처리기/백터처리기/GPU/GPGPU
MISD multiple single n개 1개 범용으로 구현X
MIMD multiple multiple n개 n개 비동기 공간적 병렬, 다중처리기(공유메모리), 분산처리기(네트워크)

프로세서의 의미
: 처리장치만
: CPU 다 묶어서

2. 암달의 법칙 (Amdahl's Law)

  • 개선에 영향을 받는 일부분: p%
  • 개선 배수: s배
  • 전체 시스템 성능 향상 = 1 / (1-p) + p/s

THEMA 23 파이프라인

1. n단계 파이프라인 전체 실행 시간

  • 파이프라인의 단계 수: n
  • 실행할 명령어들의 수: m
  • 각 파이프라인 단계의 클록 주기: p
  • 전체 명령어 실행 시간 T = (n+m-1)*p초

2. 파이프라인 해저드

종속성 해저드 발생 이유 해저드 해결방법
명령어 종속성 구조적 같은 클럭 사이클에 실행하기를 원하는 명령어의 조합을 하드웨어가 지원할 수 없는 경우 하드웨어 추가, NOP(No-Operation)사용
명령어 종속성 제어 조건 분기 명령을 수행할 경우 명령어 재배치, 명령어 재배치와 분기 선계산, 명령어 선인출, 지연 분기, 분기 예측
데이터 종속성 데이터 명령어 소스 오퍼랜드가 이전 명령어 수행 결과값과 의존 관계가 있을 경우 데이터 포워딩

3. 파이프라인 계열

(1) 슈퍼스칼라

  • 파이프라인의 단계 수: n
  • 실행할 명령어들의 수: m
  • 슈퍼스칼라 등급: k
  • 전체 수행 시간 = (n + m/k - 1) * T

(2) 슈퍼파이프라이닝

  • 파이프라인의 단계 수: n
  • 실행할 명령어들의 수: m
  • 슈퍼파이프라이닝 등급: k
  • 전체 수행 시간 = (n + (m-1)/k) * T

THEMA 24 그래픽 방식

1. 비트맵 그래픽 방식

  • 픽셀(화소)는 n bit로 구성 → 2^n개의 색상 표현
  • 이미지 용량: 가로 픽셀 수 * 세로 픽셀 수 * 픽셀 1개의 비트 수 / 8(바이트 단위)
  • 계단 현상 발생
  • 상세한 명암과 색상을 표현하는 사진에 적합
  • bmp(압축X), jpg(손실압축), gif(비손실압축), png(비손실압축)

RLE(Run Length Encoding)

  • 비손실 압축 방법
  • AAAAABBBCC → A5B3C2

2. 벡터 그래픽 방식

  • 선, 면, 도형, 객체와 함수 사용
  • 계단 현상 발생 X

3. 색상 모델

  • CMY (Cyan, Magenta, Yellow): 색을 혼합하면 명도가 낮아지는 감산 혼합 방식
  • RGB (Red, Green, Blue): 색을 혼합하면 명도가 올라가는 가산 혼합 방식
  • HSV (Hue, Saturation, Value): 사람의 직관적인 시각에 기초

THEMA 25 운영체제 개요

1. 컴퓨터 시스템 4가지 구성요소

사용자, 응용 프로그램, 운영체제, 하드웨어

커널(Kernel)

  • 자원을 관리하는 모듈의 집합
  • 메모리 관리 및 스케줄링, 인터럽트 처리 등의 기능 담당
  • 사용자가 직접 기능 제어 불가능, shell에 의뢰
  • 응용 소프트웨어와 컴퓨터 하드웨어를 연결하는 역할
  • 통합 커널, 모놀리식 커널(핵심 기능만, 마이크로 커널)

2. 운영체제의 목적

(1) 편리성

  • 편리한 사용자 인터페이스

(2) 효율성

  • 처리량 향상
  • 반환시간, 응답시간 단축 (시분할 방식/온라인 시스템 → 응답시간, 일괄 처리 시스템 → 반환시간)
  • 신뢰도 향상
  • 사용가능도 향상

(3) 제어서비스 향상

  • 입출력장치 동작 관리, 제어
  • 시스템 에러 예방

THEMA 26 프로세스와 스레드

1. 프로세스(Process)

  • 실행 중인 프로그램
  • 비동기적(Asynchronous) 행위
  • 운영체제에 들어있는 프로세스 제어 블록(PCB)와 1:1로 연결
  • Dispatch가 가능한 대상

2. 프로세스의 일반적인 메모리 구조

(1) 스택(Stack)

  • 데이터를 일시적으로 저장하는 영역
  • 지역변수, 호출한 함수의 반환 주소, 반환 값, 매개변수 등에 사용

(2) 힙(Heap)

  • 코드 영역과는 별도로 유지되는 자유영역
  • 동적으로 메모리 할당(malloc) & 해제(free)

(3) 데이터(Data)

  • 프로그램의 가상주소 공간
  • 전역변수나 정적변수를 저장하거나 할당하고 실행하기 전에 초기화

(4) 코드(Code)

  • 실행 명령을 포함하는 메모리이거나 목적 파일에 있는 프로그램 영역
  • 프로그램을 시작할 때 프로세서가 디스크에서 읽어 실행하는 컴파일한 프로그램 저장

3. 프로세스 종류

(1) 시스템(커널) 프로세스

(2) 사용자 프로세스

(3) 독립 프로세스

(4) 협력 프로세스

  • 공유 메모리, 메시지 전달 (Send-Receive 연산), 파이프/지명파이프로 통신

4. 프로세스 상태

(1) 생성

  • 프로세스 식별자(pid) 할당
  • 주소공간과 PCB 할당
  • PCB 초기화
  • 프로세스를 준비 큐에 삽입

(2) 준비

(3) 실행

(4) 대기

(5) 종료

5. 프로세스 제어블럭(PCB)

  • 프로세스의 현재 상태
  • 프로그램 카운터
  • 레지스터
  • 계정 정보
  • 프로세서 스케줄링
  • 메모리 관리 정보

THEMA 27 병행 프로세스

1. 세마포어(Semaphore)

  • 세마포어: 플래그로 사용되는 음이 아닌 정수값을 갖는 변수
  • 바쁜 대기 발생 가능 → 입구 연산과 출구 연산의 간격 짧게해서 해결
P(S) : while S <= 0 do no-op;
       S := S - 1 ;
V(s) : S := S + 1;

2. 모니터(Monitor)

  • 모니터 안에서 정의된 프로시저는 모니터 안에서 지역적으로 정의된 변수들과 형식적인 매개변수들만 접근할 수 있다.
  • 모니터의 지역 변수들은 지역 프로시저에 의해서만 접근된다.
  • 모니터 구조는 한 순간에 하나의 프로세스만 모니터 안에서 활동하도록 보장한다.

THEMA 28 교착상태(Deadlock)

1. 교착상태 필요 조건

  • 상호배제
  • 점유대기
  • 비선점
  • 순환대기

2. 교착상태 처리 기법

(1) 예방

  • 점유대기 부정 → 완전 할당
  • 비선점 부정 → 선점
  • 순환대기 부정 → 선형대기

(2) 회피

  • 다익스트라의 은행원 알고리즘
  • 모든 불안정 상태가 교착상태는 아님

(3) 탐지

  • 자원할당그래프, 탐지알고리즘 사용

(4) 회복

  • 프로세스 중지, 자원 선점