게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
시.보
게시물ID : databox_73013짧은주소 복사하기
작성자 : 시럽
추천 : 0
조회수 : 308회
댓글수 : 0개
등록시간 : 2018/07/26 20:29:58
s1. 컴퓨터 시스템 <p1CPU/p2메모리/p3I/O>

P1 CPU(중앙처리장치) 구조

1. cpu 구조
메인메모리 - ALU+Control Unit - I/O
입력장치(자료) -> 연산(일련의 과정을 제어) -> 출력장치(결과)

*CPU 구성 요소
ALU 연산장치 : 산술연산, 논리연산들을 수행하는 회로
레지스터 : 데이터 중간결과를 임시 저장
Control Unit : 프로그램 코드(명령어) 해석, 제어신호 순차적 발생
내부cpu 버스 : ALU - 레지스터 경로

*레지스터 종류
PC : 다음 수행 명령어가 저장된 주기억장치의 주소 저장
MAR : 주기억장치에 접근하기 위한 주기억장치의 주소 저장
MBR : 입출력할 자료를 기억
IR : 주기억장치에서 인출한 명령코드를 기억

2. 버스 시스템
주기억장치 <------------> 중앙처리장치
(명령어 자료)                    (cpu/명령어 처리)
데이터, 주소, 제어 정보를 전달하는 전송 라인

*버스 종류
데이터 버스 / 주소버스(기억장소, 장치식별) / 제어 버스(제어신호)

3. cpu 명령어 실행 주기
인출Fetch : 메모리에 데이터를 로드, cpu 레지스터에 적재하는 과정
간접indirect : 간접주소 방식, 메모리 참조시 메모리에 주소가 존재, 메모리 내에서 한 번 더 조회
실행excution : 산술, 논리연산 수행
인터럽트interrupt : 예기치 않은 문제-> 업무처리를 지속하게 하는 운영체제의 기능
 - 하드 인터럽트(기계 착오, 외부 입출력, pvc) 
 - 소프트 인터럽트(자신이 실행한 명령, 명려 실행과 관련된 모율의 변화)
*인터럽트 종류
외부 인터럽트 : 전원 이상, 기계착오, 입출력
내부 인터럽트 : 잘못된 명령어, program check interrupt, division by zero, overflow, exception
소프트웨어 인터럽트 : svc(super visor call)

p2 메모리 시스템
1. 기억장치 계층구조
레지스터 - 캐시 - 주기억장치보조기억장치
(프로그램과 데이터를 직접 읽음) (주기억장치에 이전 이후 읽음)
용량 감소                           용량증가
비용 증가                           비용감소
속도 증가                           속도감소

2. 캐시메모리
CPU와 주기억장치의 속도차이 극복, 고속의 버퍼 메모리
*매핑 방식(직접사상/연관사상/집한연관사상)
1)직접사상
메인메모리를 여러 구역으로 분할하여 블록화, 
캐시의 각 슬롯과 직접 매핑.
단순, 신속 / 높은 캐시 미스, 잦은 교체
2)연관사상
메인메모리의 각 블록이 캐쉬의 어느 슬롯이든 적재 가능
복잡, 하드웨어 비용 증가 / 지역성 높은 접근시 캐시 적중률 높음
3)집합연관사상
직접/연관 절충한. 캐시와 메모리가 M 대 1로 대응
캐시를 Set으로 나누서 메모리에 직접 연결
Set 안에서 어느 슬롯이든 적재 가능
직접.관 장점 수용 / 캐시 Fin/Fout 발생 증가, 구현 비용 증가

3. 캐시 메모리 관리 방식
cpu가 원하는 데이터가 캐시 메모리에 있을 수 있도록 관리 하는 방법
1)인출 방식
Demand Fetch : 필요 시 캐시를 인출
Pre-Fetch : 예상되는 블록을 미리 패치
2) 캐시 메모리 교체 알고리즘 종류
Random : page 임의 선정 / overhead 적음
FIFO : 가장 올래 있었던 page 교체 / 자주 사용되는 pag 교체 가능성
LFU : 가장 사용 횟수가 적은 page 교체 / 최근 적재된 page 교체 가능성
LRU : 오랫동안 사용 되지 않은 page 교체 / Time stamping 의한 overhead 존재
Optimal : 가장 차좀 되지 않은 page 교체 / 이상적, 구현 불가능
NUR : 참조비트, 수정비트. 미사용page 교체 / 최근 사용되지 않은 페이지 교체
SCR : 두번의 기회. 참조비트 1로 세 -> 1인경우 0으로 셋 -> 0인 경우 교체

*페이지 교체 관리 시 문제점과 해결방안
page fault 발생(페이지부재) / Demand paging(요구 페이징) / Thrashing 발생(스레싱)
-기억장채이 적재되지 않은 page의 사용
-요구 될떄만 page를 적재하는 방식
-process  수행보다 page 교체에 더 많은 시간을 소요하는 현상
>load control : 프로세서의 생성 지연, 큐에 작업을 대기 스레싱 현상 감소
>locality(구역성) : 시간과 공간 지역성을 집중적 참조
>working set : 일정시간동안 참조되는 페이지 집합(set)을 주기억장치에 유지
>PFF : page fault 빈도에 따라 residence set 조정

4. 캐시 메모리 일관성
각 프로세서가 캐시를 보유하며 
캐시에 로드된 데이터를 변경할 경우
주기억장치와동일하게 유지되는 메커니즘

*캐시의 불일치(through / back)
캐시동작 write through : 메모리에 즉시 변경
메인메모리 x= 100
캐시메모리 x=100 x=100 x=100
프로세서   p1     p2    p3
- p1프로세서로 인하여 캐시1 x=110으로 변경 -> 메인메모리 x=110으로 변경
- 메인메모리와 p2 p3 캐시 메모리 불일치 : 일관성이 깨짐

캐시동작 write back : 데이터를 캐쉬에만 기록 차후에 메모리에 저장
메인메모리 x= 100
캐시메모리 x=100 x=100 x=100
프로세서   p1     p2    p3
p1이 캐시에만 저장. store가 일어나기 전까지 주기억장치와 캐시가 비 일관성
 
5. 가상 메모리 시스템
보지기억장치를 -> 주기억장치로 사용
공간을 확대하는 기억장치 관리 방법
실제 물리적 메모리 보다 더 큰 용량의 메모리 공간을 제공하는 메모리 관리 기법
virtual address space
 
*가상메모리 관리 단위(페이지/세그먼트)
page :동일한 크기의 최소 논리 분할 단위
static 고정분할. 메모리 관리 측명. 요구 페이지만 적재. 외부 단현화 해결 교체시간 최소
내부단편화 발생 쓰레싱, 잦은 디스크i/o
segement :용도별(파일관리)로 논리적 단위로 나눈것
dynamic 동적분할. 파일관리측명. 사용자 관점. 내부단편화 해결 코드 데이터 공유 용이
외부단펴화, 메인메모리 소모가 심함
 
*가상 메모리 관리 정책
할당기법 : 프로세스 - 메모리 / 메모리의 블록 단위를 결정 / 고정 가변 페이징 세그먼트
호출기법 : 보조기억 - 주기억장치 / 적재 시점 결정 / demand fetch prefetch
배치기법 : 페이지->주기억장치 / 적재 시점 결정 /first best next worst (fit)
교체기법 : 주기억장치 공간 부족시 교체대상 결정 / random FIFO LRU LFU NUR SCR
 
*할당적책
연속할당 : 고정분할(고정/내부단편화) /가변분할(동적/외부단편화)
비연속할당 : 페이징(가상메모리블록을 페이지 단위로 관리)/ 세그먼트(가변크기의 세그먼트로 분할)
 
6.가상 메모리 관리 기법
1) 페이징 메모리 관리 기법
논리주손의 고정된 페이지 블록들로 분할 관리
페이지->물리메모리의 프레임과 맵핑
페이지를 가리키는 논리주소에서 프레임을 가리키는 물리주소로 변환
2) 세그먼트 메모리 관리 기법
메모리를 세그먼트 set로 나눠 관리
세그먼트 = base address(세그먼트 시작주소) + length value(길이 지정)
주소지정 = 세그먼트 셀렉터(세그먼트 베이스 주소) + offset(변위값)
세그먼트 테이블에서 base segement addre 획득 + offset >> 물리주소를 산출
가변공간을 할당하기에 계산을 통해 주소를 맵핑
3) paged segmentation 기법
페이지들로 세그먼트를 구성, 세그먼트 표 참조 후 페이지 표를 참조

p3. I/O 인터페이스
Prgram I/O : 메모리에 기록된 입출력 명령 수행. cpu가 주변장치를 감시(polling  방식)
인터럽트 I/O : 인터럽트 요청을 감치. 서브루틴으로 분기하여 수행. 기존 작업은 임시 중단
 
1. DMA(direct memory access)
cpu 개입 없이 (입출력장치 - 기억장치) 데이터 전송.
cpu 간섭 배제. 메모리와 주변장치 직접 관리. 기계식(속도가 빠르다)
*동작방식
cycle stealing : dma제어기 cpu가 버스를 공유. cpu가 버스를 사용 하지 않는 사이클에만 접근.
burst mode : dma 제어기가 버스를 점유. 동작 완료 후 버스 해제.
2. I/O 프로세서
채널에 의한 제어. 별도의 전용 입출력 처리 프로세서.
selector 채널 : 한번에 한개씩. 단일 입출력만 가능. 고속장치(disk, cdrom).burst mode 동작
multiplexer 채널 : 동시에 많은 데이터 전송. 시분할 방식 byte 단위. 저속장시(printer. serial)
block multiplexer 채널 : 하이브리드 모드. 동시에 많은 데이터. 블록 단위

02. 운영체제 구조<운영체제, 프로세스 관리, cpu 스케줄링, 병행성 제어>

p1. 운영체제 개요
처리능력 향상. 신뢰성 향상. 응답시간 단축. 자원활용 향상(자원공유, 상호배제), 가용성 향상
*자원관리 기능
프로세스 관리 : 프로세스 스케줄링 및 동기화 관리
기억장치 관리 : 메모리 할당 및 회수 관리
주변장치 관리 : I/O 스케줄링 점유 관리
파일 관리
* 프로세서=cpu / 프로세스 = 실행된 프로그램
 
p2. 프로세스 관리
1. 프로세스와 스레드
1)프로세스
실행중인 프로세서(레지스터, 포인터, 데이터의 집합체)
프로그램 단위. 실행중이거나 실행 가능한 pcb
system call(call 종료까지 blocking). 자원할당을 위한 기본 구분 단위
문맥교환으로 인한 부하발생
2)스레드
제어의 흐름. 프로세스에서 실행 개념만 분리
프로세서<제어흐름/실행환경>. 실행 기본 단위
library call. 요청 thread만 blocking. cpu를 이용하는 기본 작업
 
2. 프로세스 상태
운영체제-프로세스 실행 제어. 정보 유지
실행 결정 및 자원 할당 과정.
상태 변환을 위한 - job 스케줄러 / 프로세스 스케줄러
*프로세스 상태전이도
[그림]
(프로세스 스케줄러)        종료
       (작업스케줄러)실행
생성     -      준비     -     대기
작업큐         준비큐
admit / dispatch / Timer run out / Blocked / wake up / release
 
3. 문맥 교환(Context Switching)
cpu가 이전의 프로세스 상태를 pcb에 보관하고,
다른 프로세스의 정보를 pcb에서 읽어 레지스터에 적재하는 과정
준비-실행-대기.
인터럽트 / I/O 대기 / Time run ou 경우 발생
선점형 os의 경우 우선 순위에 따라 프로세스 문맥 교환 발생
2개 이상의 프로그램을 주기억장치에 기억. cpu를 번갈아 사용하면서 자원을 최대로 활용하는
멀티프로그밍 환경에서 문맥교환 과정이 이루어지며, 병행처리를 수행
*pcb(Pocess Control Block)
프로세스 제어 정보. 상태 정보를 저장 하는 구조체.
프로세스 상태 관리와 문맥교환을 위해 필요.
프로세스 생성시 주기억장치에 유지
PID(프로세스 고유번호)
포인터(다음 실행 프로세스 포인터)
상태(준비,대기,실행 등의 상태)
레지스터 세이브 area : 레지스터 관련 정보
priority : 스케줄링 및 프로세스 우선순위
account : cpu 사용 시간, 실제 사용된 시간
 
 
 
 
 
 
 
 
 
 
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호