- CPU 구성 : ALU(연산장치), Register(레지스터), Control Unit(제어 장치), 내부 CPU 버스
ALU : 산술연산, 논리연산
Register : 중간결과 일시적 기억(고속)
Control Unit : 명령어 해석, 제어신호
- 레지스터 종류
PC : 다음 수행할 명령어의 번지 저장
MAR : 주기억장치 접근을 위한 번지 기억
MBR : 주기억 장치 입/출력 자료를 기억
IR : 주기억 장치에서 가져온 명령어 코드 기억
- Instruction Cycle(CPU 명령 실행 주기) : 패치, 간접, 실행, 인터럽트
- 기억장치 계층 구조
레지스터 ← 캐시 ← 주기억장치 ← 보조기억장치
- 캐시 : CPU와 주기억장치 속도 차이 완화
* 직접 사상 : 메모리를 구역으로 분할해 캐시와 매핑, 매핑 방식 단순
순서대로 매핑되어 캐시 미스율 높음
* 연관 사상 : 메모리를 캐시 어느 슬롯에든 적재 가능, 캐시 적중률 높음, 복잡, 순서 안맞춤
* 집합 연관 사상 : 연관 + 직접, 순서대로 매핑 하되 일정 그룹에서 연관 방식
- 캐시메모리 인출 방식 : Demand Fetch, Pre Fetch
* 캐시메모리 교체 알고리즘
Random |
교체 Page 임의 선정 |
오버헤드 적음 |
FIFO |
오래된 Page 교체 |
자주 사용되는 Page 교체 위험성 |
LFU |
사용횟수 적은 Page 교체 |
최근 적재된 Page 교체 위험 |
LRU |
최근 사용되지 않은 Page 교체 |
타임스탬프에 의한 오버헤드 |
NRU |
참조비트, 수정비트로 미사용 Page 교체 |
최근 사용되지 않은 Page 교체 |
SCR |
1→0→>교체 |
기회 한번 더줌 |
- 페이지 교체 관리 문제점
Page Fault : 페이지 사용하려는데 페이지 부재
Demand Paging : 요구될때에만 프로세스가 Page 교체
Thrashing : CPU가 Page 교체에 더 많은 소요(Page Fault 의 잦은 발생)
- 페이지 교체 관리 해결 방안
Load Control : 큐에 대기 시킴, Thrashing 감소
Locality : 시간 공간 지역성 참조
Working Set : 일정 시간동안 페이지 집합을 주기억 장치에 유지
PFF : Page Fault 빈도에 따라 Residence set 조정
- 캐시 불일치 : CPU가 캐시와 메모리에 데이터 기록하는 방식
write-through : 메모리값 바로 갱신, 다른 프로세스와 충돌
write-back : 일정시간 이후 메모리에 기록, 기록전까지 값 다름
- 가상메모리 시스템 : 보조기억 장치를 주기억 장치처럼 사용
* 관리 단위
|
Paging |
Segment |
할당 |
고정 |
가변 |
적재 |
Page 일부 |
프로그램 전체 |
관점 |
메모리 |
파일 |
장점 |
외부 단편화 해결 교체시간 최소 |
내부 단편화 해결 개발/플밍에 용이 |
단점 |
내부 단편화 스래싱, 잦은 I/O |
외부 단편화 메모리 커야함 |
- 가상 메모리 관리 정책 : 할당, 호출, 배치, 교체
* 할당정책
연속 할당 → 고정 분할, 가변 분할
비연속 할당 → paging, segmentation
- 가상 메모리 관리 기법
* paging : 고정된 페이지 블록
- TLB(Translation Look aside Buffer) : 가장 최근 사용된 페이지 테이블 항목 유지
- MMU(Memory Management Unit) : 주기억장치와 캐시의 메모리 주소 변환
* Segmentation : 세그먼트 세트로 나눠 관리
Segment table 에서 base segment 주소획득, offset 결합해 물리 메모리 주소
* paged segmentation : 페이지들로 세그먼트 구성
외부 단편화 제거, 내부 단편화 일부 발생 가능성
- I/O 인터페이스
* 프로그램 입출력 : 입출력을 CPU가 진행, 입출력중 다른 작업 못함, Polling, 효율 낮음
* 인터럽트 입출력 : 인터럽트 처리루틴에 의한 입출력, CPU 대기 발생
* DMA(Direct Memory Access) : CPU 개입 없이 I/O 장치 – 기억장치 데이터 전송
- 종류 Cycle Stealing : CPU와 버스 공유, Brust Mode : DMA 제어기가 버스 점유
* I/O 채널 : DMA 제어기의 한계 극복, 별도 전용 처리 프로세서, 독립된 입출력 프로세서
- CPU 스케줄링
* Multi-Level 큐 : 스케줄링 기법 : 라운드로빈, 우선순위 큐
* Multi_Level Feedback 큐
1-2. 운영체제 : 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경 제공
- 운영체제 목적 : 처리능력 향상, 신뢰성 향상, 응답시간 단축, 자원 활용률 향상, 가용성 향상
- 프로세스 관리
* 프로세스 : 프로세서에 의해 수행되는 프로그램 단위, PCB 가짐
* 스레드 : 프로세스에서 실행의 개념만 담당
|
프로세스 |
스레드 |
상호통신 |
System Call 전체 자원 블로킹 |
Library Call 요청 스레드만 블로킹 |
처리방식 |
자원할당을 위한 기본 구분 단위 |
CPU를 이용하는 기본 작업 |
부하 |
Context Switching 부하 프로세스 자원할당 시 부하 |
프로세스보다 상대적 부하 적음 |
- 프로세스 상태
* 프로세스 상태전이 : 프로세스 실행 결정 및 시스템 자원을 할당하는 과정
* Active 모드에서 프로세스 상태 변환
Admit : 생성 → 준비, Dispatch : 준비 → 실행, Timer Runout : 실행 → 준비
Blocked : 실행 → 슬립(대기), Wake up : 슬립 → 준비, Release : 실행 → 종료
#PCB(Process Control Block) : 프로세스제어를 위해 정보 저장
문맥교환에 필요, 주기억장치에 유지됨
##PCB 정보 : PID, 포인터, 상태, Priority, Account, 입출력상태 정보, 할당 자원 정보 등
- CPU 스케줄링 : 장기, 중기, 단기
*점유 방식
|
선점(Preemptive) |
비선점(Non-Preemptive) |
개념 |
CPU 점유 중에도 다른프로세스가 CPU 점유 가능 |
CPU 점유 해제할때까지 다른 프로세스 대기 |
장점 |
빠른 응답, 대화식 시분할 |
응답시간 예상가능, 프로세스 요구 공정 |
단점 |
문맥교환 발생, 오버헤드 |
짧은 작업의 긴 대기시간 |
기법 |
라운드로빈, SRT |
FCFS, SJF, HRN |
- 비선점 스케줄링 기법
* FCFS(First Come First Service)
큐에 도착한 순서에 따라 CPU 할당
* SJF(Shortest Job First)
수행시간이 짧다고 생각되는 것을 먼저 수행(버스트 시간), 큰 작업 예측 어려움
- 선점 스케줄링 기법
* 라운드 로빈(Round Robin)
FCFS 방식에서 각 프로세스에 같은 시간 할당, 할당 시간에 완료 못하면 리스트의 가장 뒤로
* SRT(shortest Remaining Time)
SJF 에 선점방식 도임, 가장 짧은 시간 걸리는 프로세스 수행
* Multi-Level Queue
여러개의 큐, 각 큐의 독자적인 스케쥴링에 따른 CPU 할당
* Multi-Level Feedback Queue
우선순위 Queue 와 라운드로빈 사용
새로운 프로그램이 들어오면 높은 우선순위에서 점차 낮은 우선순위 부여, 라운드로빈 순환
- 상호배제(=Mutex) : 다수의 프로세스가 동일 자원 접근 시 무결성 보장, 임계 영역
공유자원에 동시에 RW 못하도록
* 임계 영역 : 한순간에 반드시 하나의 프로세스만 접근 하도록
ex) wait(mutex); //진입구역(entry section) → 임계구역 진입
임계 구역
signal(mutex); //출구구역(exit section) → 임계구역 벗어남
나머지 구역
- 세마포어(semaphore) : 정수변수를 통한 공유자원 접근제어
0과 1만 가지는 이진 세마포어, 정수값 가지는 계수형 세마포어
ex) wait(s); signal(s);
- 모니터 상호배제 : 공유자원을 모니터 내부의 지역변수로 정의, 모니터내의 함수에서만 접근
- 교착상태 : 하나 또는 둘이상의 프로세스가 계속 특정 사건을 기다리는 상태
* 발생조건
1. 상호배제 : 자원 배타적 점유, 한번에 한프로세스
2. 점유와 대기 : 다른 종류의 자원을 요구하며 이미 어떤 자원 점유
3. 비선점 : 점유 프로세스로부터 도중에 해제되지 않음
4. 환형대기 : 각 프로세스가 자원을 가지면서 상대방 프로세스의 자원을 상효 요청
* 교착상태 예방
1. 상호배제 조건 부정 : 공유 가능한 자원들은 배타적 접근 요구 안함
2. 점유와 대기 조건 부정 : 각 프로세스는 필요한 자원 한꺼번에 요청
3. 비선점 조건 부정 : 자원 할당 요구 시 안되면 점유보유 반납, 무기한 연기 가능성 존재
4. 환형대기 조건 부정 : 모든 프로세스에게 자원의 유형별로 할당순서 부여
* 교착상태 회피
은행원 알고리즘 → 안전 상태, 불안전 상태(불안전에서만 교착상태 발생)
가용자원 요청 시 바로 할당할 건지 기다리게 할건지
* 교착상태 발견
교착상태 발견 알고리즘 → 발생 빈도수, 영향받는 프로세스 수
자원할당 그래프 → 방향그래프를 사용해 나타냄
* 교착상태 회복
- 프로세스 중지 : 교착상태 프로세스들 중지, 한프로세스씩 중지
희생자 선택의 원칙 : 최소비용으로 중지
- 자원 선점 : 자원들을 선점해 교착 상태 해결될때까지 다른 프로세스들에게 할당
- 디스크 관리
- 주소 찾는 과정 : 디스크 번호 → platter 번호 → track 번호 → sector 번호 → 지정된 주소
* 탐색 시간 : 특정 트랙으로 디스크 해드가 이동하는데 소요되는 시간
* 회전 지연 시간 : 섹터가 디스크 헤드까지 오는데 걸리는 시간
* 전송 시간 : 데이터 전송 시간
- 디스크 스케줄링
1. FCFS(First Come First Served)
먼저 요청 우선 처리, 장점: 개발용이, 공평성, 단점: 이동경로 김
2. SSTF(Shortest-Seek Time First)
탐색거리가 짧은 트랙 우선, 장점:전반적 Seek time 감소, 단점: Starvation 현상
3. SCAN(엘레베이터)
헤드가 끝에서 끝으로 이동, 이후 다시 역방향으로 이동
4. C-SCAN
항상 바깥쪽에서 안쪽으로만 이동, 일방향
5. C-LOOK
무조건 끝까지가 아닌 한방향의 마지막 처리 후 다시 이동하여 처리
- 파일 시스템
1. FAT(File Allocation Table)
- FAT16 : 2GB, 파일명 8자, 클러스터당 1632KB
- FAT32 : 2TB, 암호화 및 압축 불가능, 파일명 256자, 클러스터당 4KB
2. NTFS(New Technology File System)
암호화 및 압축 지원, 대용량, 가변 클러스터(512~64) 기본은 4KB, 윈도우 NT 이상
3. EXT(Extended File System)
- EXT : Minix, 2GB, 255byte 파일명
- EXT2 : 2GB, 볼륨은 32TB, FSCK 지원 오류수정 → 시간 많이 소요
캐시데이터 저장중 오류 발생 시 손상
- EXT3 : 저널링 추가, 저널에 먼저 수정내용 기록 → 다운 시 오류 복구
디스크 조각화 최소화
- EXT4 : 16TB, 볼륨은 1EB, 저널 Checksum 기능 추가, 하위 호환
Delayed Allocation, persistent pre-allocation
4. UFS(Unix File System)
* VTOC 디스크 레이블 : 각 파티션 기본 정보
* 구성
부트블록
프라이머리 슈퍼블록 : 데이터 블록개수, 실린더 그룹개수, 마운트 정보
백업 슈퍼블록 : 실린더 마다 슈퍼블록 복사본
실린더 그룹 : 슈퍼블록, 실린더 그룹 목록, i-node 테이블, 데이터 블록
슈퍼블록 : 파일시스템 크기, i-node 테이블 크기, free 블록 리스트
실린더 그룹 블록 : 비트맵 정보, 통계 정보
i-node 테이블 : 파일의 중요 정보, 파일크기, 위치, 유형, 사용허가권, 날짜 정보
- RAID : 디스크를 배열구조로 중복 구성
* RAID 0 : 2개이상의 디스크 단순 합침, 복사 X, 장애 시 복구 불가
* RAID 1 : Mirroring, 이중화, 가장 좋으나 비용 높음
* RAID 2 : 해밍코드를 통한 오류 복구, ECC 를 통한 복구
* RAID 3 : 패리티 정보를 별도 디스크에 저장
* RAID 4 : RAID3 에서 데이터만 블록으로 관리
* RAID 5 : 분산 패리티 저장, 최소 3개 디스크, 일반적으로 4개 디스크
* RAID 6 : RAID 5에서 패리티 다중화
'자격증 > 보안기사' 카테고리의 다른 글
02_네트워크_3 (0) | 2021.01.23 |
---|---|
02_네트워크_2 (0) | 2021.01.23 |
02_네트워크_1 (0) | 2021.01.22 |
01_시스템 보안 정리_3 (0) | 2021.01.22 |
01_시스템 보안 정리_2 (0) | 2021.01.21 |
댓글