명령어흐름 | 데이터흐름 | 제어장치 | 처리장치 | 특징 | |
---|---|---|---|---|---|
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 다 묶어서
- 개선에 영향을 받는 일부분: p%
- 개선 배수: s배
- 전체 시스템 성능 향상 = 1 / (1-p) + p/s
- 파이프라인의 단계 수: n
- 실행할 명령어들의 수: m
- 각 파이프라인 단계의 클록 주기: p
- 전체 명령어 실행 시간 T = (n+m-1)*p초
종속성 | 해저드 | 발생 이유 | 해저드 해결방법 |
---|---|---|---|
명령어 종속성 | 구조적 | 같은 클럭 사이클에 실행하기를 원하는 명령어의 조합을 하드웨어가 지원할 수 없는 경우 | 하드웨어 추가, NOP(No-Operation)사용 |
명령어 종속성 | 제어 | 조건 분기 명령을 수행할 경우 | 명령어 재배치, 명령어 재배치와 분기 선계산, 명령어 선인출, 지연 분기, 분기 예측 |
데이터 종속성 | 데이터 | 명령어 소스 오퍼랜드가 이전 명령어 수행 결과값과 의존 관계가 있을 경우 | 데이터 포워딩 |
- 파이프라인의 단계 수: n
- 실행할 명령어들의 수: m
- 슈퍼스칼라 등급: k
- 전체 수행 시간 = (n + m/k - 1) * T
- 파이프라인의 단계 수: n
- 실행할 명령어들의 수: m
- 슈퍼파이프라이닝 등급: k
- 전체 수행 시간 = (n + (m-1)/k) * T
- 픽셀(화소)는 n bit로 구성 → 2^n개의 색상 표현
- 이미지 용량: 가로 픽셀 수 * 세로 픽셀 수 * 픽셀 1개의 비트 수 / 8(바이트 단위)
- 계단 현상 발생
- 상세한 명암과 색상을 표현하는 사진에 적합
- bmp(압축X), jpg(손실압축), gif(비손실압축), png(비손실압축)
- 비손실 압축 방법
- AAAAABBBCC → A5B3C2
- 선, 면, 도형, 객체와 함수 사용
- 계단 현상 발생 X
- CMY (Cyan, Magenta, Yellow): 색을 혼합하면 명도가 낮아지는 감산 혼합 방식
- RGB (Red, Green, Blue): 색을 혼합하면 명도가 올라가는 가산 혼합 방식
- HSV (Hue, Saturation, Value): 사람의 직관적인 시각에 기초
사용자, 응용 프로그램, 운영체제, 하드웨어
- 자원을 관리하는 모듈의 집합
- 메모리 관리 및 스케줄링, 인터럽트 처리 등의 기능 담당
- 사용자가 직접 기능 제어 불가능, shell에 의뢰
- 응용 소프트웨어와 컴퓨터 하드웨어를 연결하는 역할
- 통합 커널, 모놀리식 커널(핵심 기능만, 마이크로 커널)
- 편리한 사용자 인터페이스
- 처리량 향상
- 반환시간, 응답시간 단축 (시분할 방식/온라인 시스템 → 응답시간, 일괄 처리 시스템 → 반환시간)
- 신뢰도 향상
- 사용가능도 향상
- 입출력장치 동작 관리, 제어
- 시스템 에러 예방
- 실행 중인 프로그램
- 비동기적(Asynchronous) 행위
- 운영체제에 들어있는 프로세스 제어 블록(PCB)와 1:1로 연결
- Dispatch가 가능한 대상
- 데이터를 일시적으로 저장하는 영역
- 지역변수, 호출한 함수의 반환 주소, 반환 값, 매개변수 등에 사용
- 코드 영역과는 별도로 유지되는 자유영역
- 동적으로 메모리 할당(malloc) & 해제(free)
- 프로그램의 가상주소 공간
- 전역변수나 정적변수를 저장하거나 할당하고 실행하기 전에 초기화
- 실행 명령을 포함하는 메모리이거나 목적 파일에 있는 프로그램 영역
- 프로그램을 시작할 때 프로세서가 디스크에서 읽어 실행하는 컴파일한 프로그램 저장
- 공유 메모리, 메시지 전달 (Send-Receive 연산), 파이프/지명파이프로 통신
- 프로세스 식별자(pid) 할당
- 주소공간과 PCB 할당
- PCB 초기화
- 프로세스를 준비 큐에 삽입
- 프로세스의 현재 상태
- 프로그램 카운터
- 레지스터
- 계정 정보
- 프로세서 스케줄링
- 메모리 관리 정보
- 세마포어: 플래그로 사용되는 음이 아닌 정수값을 갖는 변수
- 바쁜 대기 발생 가능 → 입구 연산과 출구 연산의 간격 짧게해서 해결
P(S) : while S <= 0 do no-op;
S := S - 1 ;
V(s) : S := S + 1;
- 모니터 안에서 정의된 프로시저는 모니터 안에서 지역적으로 정의된 변수들과 형식적인 매개변수들만 접근할 수 있다.
- 모니터의 지역 변수들은 지역 프로시저에 의해서만 접근된다.
- 모니터 구조는 한 순간에 하나의 프로세스만 모니터 안에서 활동하도록 보장한다.
- 상호배제
- 점유대기
- 비선점
- 순환대기
- 점유대기 부정 → 완전 할당
- 비선점 부정 → 선점
- 순환대기 부정 → 선형대기
- 다익스트라의 은행원 알고리즘
- 모든 불안정 상태가 교착상태는 아님
- 자원할당그래프, 탐지알고리즘 사용
- 프로세스 중지, 자원 선점