목차
오늘로 마지막 주차인 6주차네요
다들 고생 많으셨습니다.
한빛마일리지 받으면 뭐 살지 생각해보면서 도서들도 개인적으로 한번 훑어봤습니다
유익해보이는거 몇개만 따로 골라왔습니다
아 그리고 회고록도 따로 써야하네요 이건 정리해서 주말에 올릴게요
Chapter 14: 가상 메모리
Chapter 15: 파일 시스템
학습 내용 정리
Chapter 14: 가상 메모리
연속 메모리 할당: 프로세스는 프로세스의 메모리 주소를 할당 받아 연속적으로 배치 됨
스와핑: 사용하지 않는 프로세스를 보조 기억 장치의 스왑 영역으로 이동시키고 실행할 프로시스를 메모리로 옮김
스왑 영역: 스와핑 발생 시 프로세스가 들어가는 보조 기억 장치의 영역
스왑 아웃: 실행 되지 않는 프로세스를 메모리에서 스왑 영역으로 옯기는 것
(메모리 - > 스왑 영역)
스왑 인: 프로세스를 스왑 영역에서 프로세스로 옮기는 것
(스왑영역 -> 메모리)
스와핑을 활용하면 프로세스에서 요구하는 메모리 주소 공간 크기가 실제 메모리 크기보다 커도 실행이 가능하다.
메모리 할당
- 최초 적합: 최초로 발견한 빈 공간에 프로세스를 적재
- 최적 접합: 적재될 수 있는 가장 작은 공간에 프로세스를 적재
- 최악 적합: 적재될 수 있는 가장 큰 공간에 프로세스 적재
외부 단편화: 프로세스를 할당하기 힘든 작은 메모리 공간으로 인한 메모리 낭비 현상
외부 단편화 해결 방법
1. 압축: 흩어진 메모리 공간을 하나로 압축하는 기법
2. 페이징 기법
페이징: 메모리의 물리 주소 공간을 프레임 단위로 나눔, 논리 공간을 페이지 단위로 자름.
이후 페이지를 프레임에 할당 하는 가상 메모리 관리 기법
페이지 아웃: 페이지 단위로 스왑 아웃
페이지 인: 페이지 단위로 스왑 인
페이지 테이블 베이스 레지스터: 각 프로세스 페이지테이블이 적재된 순서
TLB: 페이지 테이블의 캐시메모리 역할 수행
TLB 히트: CPU가 발생한 논리 주소에 대한 페이지번호가 TLB테이블에 존재(없는 경우 TLB미스)
페이지 폴트: 프로세스가 참조하려는 페이지가 현재 메모리에 로드되어 있지 않을 때 발생
페이지 참조열: CPU가 참조하는 페이지 중 연속된 페이지를 생략한 페이지열
- 페이지 참조열을 알면 페이지 폴트 횟수를 알 수 있다
페이지 교체 알고리즘
1. FIFO 페이지 교체 알고리즘:
- 가장 먼저 메모리에 들어온 페이지부터 내보내는 알고리즘
- 페이지의 향후 참조 가능성을 고려 하지 않음
2. LRU
- 사용 가능성이 낮은 페이지를 우선적으로 내보내는 알고리즘 (가장 오래전에 참조 된 페이지를 내보낸다.)
3. LFU
- 참조 횟수가 가장 적은 페이지를 교체 대상으로 선정하는 알고리즘
4. 최적 페이지 교체 알고리즘
- CPU에 의해 참조되는 횟수를 고려하는 페이지 교체 알고리즘
- 가장 낮은 페이지 폴트율을 보장하는 알고리즘이다
- 실제로 구현하기는 힘드며 이론상 성능을 평가하기 위한 목적으로 사용
스레싱: 지나치게 빈번한 페이지 교체로 CPU이용률이 낮아 지는 문제
Chapter 15: 파일 시스템
트리 구조 디렉터리: 최상위 디렉터리 및에 여러 서브 디렉터리가 있는 구조
루트 디렉터리: 최상위 디렉터리
절대 경로: 루트 디렉터리에서 자기자신에 이르는 구조
상대 경로: 현재디렉터리에서 시작하는 구조
파티셔닝: 저장장치의 논리적인 영역을 구획
포매팅: 파일 시스템을 설정하여 새로운 데이터를 쓸 작업 준비 (저수준 포매팅, 논리적 포매팅)
파일 할당 방법: 연속 할당 불연속 할당
불연속 할당은 연결 할당과 색인 할당으로 나뉨
FAT파일시스템(FAT: 파일 할당 테이블) 을 이용하는 연결 할당 기반 파일 시스템
유닉스 파일 시스템: i-node 를 이용하는 색인할당 기반 파일 시스템
과제
p.400 1번
메모리 할당 방식에 대해 옳은 것을 보기에서 고르시오
보기) 최초 적합, 최적 적합, 최악 적합
1. 최초로 발견한 빈 공간에 프로세스를 적재
2. 적재될 수 있는 가장 큰 공간에 프로세스 적재
3. 적재될 수 있는 가장 작은 공간에 프로세스를 적재
답:
1 - 최초 적합
2 - 최악 적합
3 - 최적 적합
14 -3 LRU 교체 알고리즘 사용 시 페이지 폴트 발생 횟수
풀이:
우선 프레임은 세개 있습니다
최초 상태는 아래와 같다고 합시다
맞는 표현법인지 모르겠지만 간단하게 배열로 표현하겠습나다
0 | {null, null, null} |
아래의 페이지 참조열에 있는 페이지를 참조 하게 되면 (빨간색으로 표시한 부분이 페이지 폴트 발생한 구간입니다)
프레임에 없는 페이지에 접근 한 경우 가장 오래전에 들어온 페이지부터 내보내면서 수행하면 다음과 같이 진행 됩니다.
2 3 1 3 5 2 3 4 2 3
1 | {2, null, null} |
2 | {2, 3, null} |
3 | {2, 3, 1} |
4 | {2, 3, 1} |
5 | {5, 3, 1} |
6 | {5, 3, 2} |
7 | {5, 3, 2} |
8 | {4, 3, 2} |
9 | {4, 3, 2} |
10 | {4, 3, 2} |
페이지 폴트는 총 3번 발생했습니다.
답: 3
완주 기념 한빛 책 둘러보기
교보문고 랭킹기준으로 둘러보거나 검색해서 유용해 보이는 걸로 골랐습니다
실제 책 내용을 본게 아닌 목차를 보고 설명을 쓴거라 정확하진 않습니다.
책을 고르는데 과제보다 더 오래 걸린거같네요ㅠㅠ
<개발/ 프로그래밍>
1, Thinking About C++11 STL
- C++ 표준라이브러리 STL 의 활용을 중점으로 다루고 있다
STL은 범용성이나 편리성 성능면에서 굉장히 뛰어나지만, 기능이 정말 많아서 다 알기는 힘든 면도 있다.
실무면에서도 많이 활용되므로 읽으면 도움될 것 같다
2. 이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접
- CS(컴퓨터과학)에 관련된 다양한 내용을 정리 해 놓았다
혼자공부하는 컴퓨터구조+운영체제에서도 나온 컴퓨터 구조 운영체제 관련 내용 및
네트워크, DB등에 대한 내용도 전체적으로 다 들어가 있다
제목은 기술 면접이라 되어 있지만 실무에서도 많이 도움이 된다고 생각한다
3. 실무로 통하는 클린코드
- 다양한 언어의 에제를 통해 클린코드 작성법을 소개한다.
주석 활용이나 변수명 정의 등 간단한 부분부터 리팩토링 같은 심화된 부분까지 고려 할수 있도록 정리되어있다
---
전 참고로 저런걸 몰라서 신입사원일떄 학교에서 전공실습할때처럼
int a, b, c;
string s;
이런 변수 쓰다 쿠사리 먹었습니다...
<기타>
게임 전쟁
- 게임 산업의 역사와 2000년대 콘솔 황금기 시대적 양상 등에 대해 자세히 정리되어있다
게임은 항상 많은 관심을 받아왔고 인기도 높았으며 이에 따라 다양한 게임들이 개발되어왔다
과거에 게임은 단순 아이들용 놀이나 부정적으로는 게임중독같은 질병을 일으키는 것으로 여겨지기도 했다
지금은 작품성을 인정받는 게임들도 많고 하나의 문화 사업으로 받아들여진다
일단 Thinking About C++11 STL 부터 살 것 같습니다. 다른 책들도 유용할것 같고 게임 전쟁도 재밌어보이네요
나머지 구매 순서는 천천히 생각해봐야겠네요
'혼공- 컴퓨터구조, 운영체제' 카테고리의 다른 글
[혼공컴운] 혼공학습단 13기 회고록 (2) | 2025.02.27 |
---|---|
[혼공컴운]5주차_프로세스 동기화/ 교착 상태 (0) | 2025.02.14 |
[혼공컴운] 4주차_운영체제 시작하기/ 프로세스와 스레드/ CPU 스케줄링 (0) | 2025.02.05 |
[혼공컴운] 3주차_메모라와 캐시메모리/ 보조기억장치/ 입출력장치 (0) | 2025.01.21 |
[혼공컴운] 2주차_CPU의 작동원리/ CPU 성능 향상 기법 (1) | 2025.01.15 |