본문 바로가기

COMPUTING/OPERATING SYSTEM

혼공 컴퓨터구조 + 운영체제 6주차 공부 인증

여러 가지

안녕하세요? Zeromm입니다.
벌써 설 연휴를 앞두고 있네요. 벌써 2월인가 싶었는데 벌써 5일이나 되었습니다. 시간이 너무 빠르네요. 그리고 혼공학습단도 어느덧 마지막 주를 앞두고 있습니다. 11기 참여자분들 모두 힘내서 무사히 마무리하셨으면 좋겠습니다.
이번 6주 차 항공컴운은 좀 많이 어렵습니다. 저도 혼공 11기 공부하면서 '이게 뭔 소리람..' 했던 적은 첨이었네요. 그렇지만 혼란스러울 때일수록 공부했던 부분을 다시 복습해 보면 해답이 나오더라고요! 그러니 너무 겁먹지 말고 끝까지 완주 한번 해보자고요. 그럼 시작합니다~
 

CHAPTER 14 가상 메모리

이번 챕터 제목.. 보이시나요?? 제가 3주 차 때 RAM에 대해서 적었던 공부인증에 적었었습니다. 그때, 부족한 메모리 공간을 초월할 수 있는 방법으로 보조기억장치를 활용한 가상 메모리에 대해 말했었죠. 정확히 어떤 메커니즘으로 작동하는지는 몰랐지만, 적어도 메모리 기능을 보조해 줄 수 있는 좋은 기능임에는 분명해 보였습니다.

이번 챕터에선 가상 메모리 메커니즘에 대해 배웁니다. 가장 먼저 배우는 기법은 '스와핑'입니다. 스와핑은 아시다시피 두 사물을 뒤바꾼다라는 의미를 가지고 있습니다. 메모리와 보조기억장치 사이에서 프로세스를 주고받는 경우를 말하죠. 대개 메모리는 보조기억장치에 비해 공간이 협소하기 때문에 실행 중인 프로세서들이 업로드되어 있어야 합니다. 쓰지 않는 프로세서들이 올라가 있다면 공간효율이 좋지 못하겠지요? 그래서 2절과 3절에서는 공간효율 향상을 위해 프로세서를 페이지 단위로 잘게 자르고, 페이지를 어떻게 교체할 것인지에 대해 배웁니다.
제가 조금 재밌게 봤던 부분은 외부/내부 단편화입니다. 이 내용도 학부 책에서 본 듯한 내용이었습니다. 메모리자체는 많은 프로세서들이 오가는 장소인데, 이 과정에서 공간 손실이 발생한다는 게 재밌었습니다. 손실이 생기는 이유를 프로세스 입장에서 두 종류로 나눠놓았더군요. 외부 단편화는 작업을 마치고 생긴 빈 공간들로 인해 발생하는, 프로세서 외적인 상황에서 일어나는 문제입니다. 그러나 내부 단편화는 프로세서를 페이지 단위로 자르다 생기는 문제이죠. 프로세서 내적인 문제입니다. 그래서 작은 단편(부분)들이 문제를 일으키는 걸 이렇게 표현했다는 게 재밌었습니다. 이 문제들을 해결하고자 프로세서 외적으로는 메모리 조각모음이나 가상메모리기법을 사용한다는 점을 알 수 있었습니다. 조각모음은 HDD세대라면 아주 익숙한 용어일 겁니다. 과거 컴퓨터가 느려졌다고 생각이 들면 그 당시  HDD를 손보는 일들이 많았습니다. 보조기억장치에 디스크 조각모음을 하면 빈 공간이 하나로 압축되고 저장공간이 생기거든요. 그렇게 하여 느려진 컴퓨터 속도를 높일 수 있었던, 굉장히 유용했던 기법 중 하나였습니다.

막상 실제로 해보진 않았던 조각 모음 (출처 :직접 확인한 SSD 조각모음의 진실 - ITWorld Korea)


3절은 내용이 이 책에서 가장 어려웠지만, 가장 수리적이라고 생각했던 파트였습니다. 앞에서 언급했다시피 메모리에선 페이지 교체 알고리즘이 공간효율 개선을 위해 꼭 필요합니다. 이때 3가지 정도의 알고리즘을 배우고, 이것들의 성능을 평가할 수 있는 기준을 제시해 주죠. 바로 '페이지 폴트' 횟수입니다. 제한된 메모리 공간으로 인해, 새로운 페이지를 보조기억장치에서 스왑인 할 때 발생하는 사건이 페이지 폴트입니다. 당연히 보조기억장치를 거치면 프로세서 처리 속도는 느려집니다. 따라서 성능개선을 위해서라면, 페이지 폴트 횟수를 최대한 줄이는 것이 좋습니다. 마치 제가 이산수학 때 탐색 알고리즘에서 탐색 시간을 기준으로  성능을 평가했던 것과 비슷합니다. 이 책에서는 이론적으로 가장 성능 좋은 알고리즘으로 사용빈도가 가장 낮은 페이지를 교체하는 알고리즘을 '최적 페이지 교체 알고리즘'으로 여깁니다. 이 알고리즘을 기준으로 다른 알고리즘과 성능을 비교한다고 하네요. 여러모로 더 깊이 들어가면 시험문제 내기 딱 좋을 것 같은데, 혼공에서 배울 수 있어서 다행이었던 시간이었습니다.🤣🤣

CHAPTER 15 파일 시스템

드디어 마지막 장입니다. 파일 시스템이라고 하면 우리가 이는 그 File인가 싶으실 텐데 맞습니다. 운영체제가 어떤 방식으로 파일들을 정리하는지에 대해 배웁니다. 요즘 컴퓨터에는 많은 파일들이 담길 수 있는 용량을 하드웨어  제공하지만, 그것을 잘 관리할 수 있는 서비스를 운영체제가 제공합니다.  그것이 파일시스템과 디렉터리가 되겠습니다.
디렉터리는 우리가 쓰는 윈도 내의 폴더 개념과 정확히 일치합니다. 노란색 폴더에 이름도 붙이고, 그 안에 파일과 또 다른 폴더를 저장할 수 있죠? 파일을 묶는, 말 그대로 '책자'이라는 의미를 갖고 있습니다. 하지만 파일 시스템은 여기서 끝나지 않습니다. 디렉터리와 파일이 제공하는 관리 기능을 2절에서 배웁니다.
디렉터리에 저장되는 파일들은 각자만의 고유한 경로를 갖습니다. 그래서 파일에 마우스를 갖다 대고 오른쪽 클릭을 하여 '경로를 복사'를 누르면 해당 파일의 경로를 얻을 수 있습니다. 윈도에서는 "OneDrive\바탕 화면\QS-my phone\20240119_235107.jpg"과 같이 '\' 기호를 써서 해당 파일의 경로를 표현한다는 것을 알 수 있습니다. 

우클릭 한 사진도 찍고 싶었지만 캡쳐가 안됩니다.. 유감

2절의 '좀 더 알아보기'에서는 마운트에 대해 짤막하게 배웁니다. 그런데 저는 마운트의 의미는 무엇일까, 폴더 붙여 넣기인가? 처음엔 이게 무슨 의미를 가졌는지 너무 이해가 안 되었어요. 그냥 제가 보기엔 다른 디렉터리를 한 디렉터리에 갖다 붙인 인상을 짙게 받았거든요. 그런데 찾아보니까 더 큰 의미가 있더군요. 제가 쓰는 노트북을 예로 들어보겠습니다. 제 노트북은 SSD를 사용하며 당연히 윈도우 운영체제를 사용하기 때문에 루트 디렉터리는 C:입니다. 이 노트북에 USB나 SD카드를 꽂아서 추가로 작업을 해준다고 칩시다. 이 경우, 운영체제는 새로운 저장장치를 '인식'할 수 있어야 합니다. 그래야 외부 저장장치 내의 파일을 꺼내서 작업할 수 있을 테니까요. 그렇기 위해서 기존에 갖고 있던 노트북의 루트 디렉터리에 외부 저장장치를 '연결'시키는 작업을 한다는 것이죠. 그게 '마운트'입니다. 마운트 된 외부 장치는 당연히 하나의 디렉터리로서 운영체제에게 인식되고 사용자가 사용할 수 있게 됩니다. 그리고 이 녀석을 다시 노트북에서 제거할 때에는, 노트북의 저장장치와 외부장치와의 간섭이 생기지 않도록 안전하게 제거해야 합니다. 제거하기 전, 상태표시창을 통해 'USB를 제거하기'같은 창을 클릭한 후 제거하는 게 그런 이유에서 이지요. 마운트라는 것은 결국, 하나의 기기에서 외부저장장치를 끌어다 쓰기 위한 필수적인 기법인 셈입니다. 

내 노트북 저장장치 속성으로 들어가면 보이는 창

추가적으로 NTFS 파일 시스템에 대해서도 찾아보았어요. NTFS는 New technology file system의 약자로 현재 윈도우가 채택하고 있는 대표적인 파일 시스템입니다. 구조는 크게 Volume Boot Record + Master File Table + Data Area로 되어 있습니다. 이때 첫 파티션에는 이름에서도 볼 수 있듯 boot section이 존재합니다. 그다음 MFT는 파일과 디렉터리, 그리고 메타데이터 모두를 파일 형태로 관리하는 부분입니다. FAT 파일 시스템의 디렉터리 엔터리처럼 파일에 대한 많은 정보를 담고 있는 부분입니다. 이때, 메타데이터란 '데이터에 대한 데이터'라는 의미입니다. 파일에 대한 속성값이 되겠죠. 이런 구조를 통해서 NTFS 시스템은 손상을 복구하고 저장장치에 대한 보안성을 높일 수 있다고 합니다. 윈도우 말고도 다른 운영체제에서도 이 파일시스템을 채택하고 있다고 합니다. 그러니 아마 제가 사는 시대에는 계속 NTFS를 쓰지 않을까 싶네요. 

기본미션 -  p.400의 확인문제 1번 풀고 인증

연속 메모리 할당 시 어떤 방식으로 메모리를 할당하냐에 따라 효율성이 크게 달라집니다. 우리 책에서는 최초 적합, 최적 적합, 최악 적합으로 총 3가지를 배웠습니다. 최초적합은 말 그대로 적재가능한 공간을 최초로 발견했을 때 그 공간에 프로세서를 배치하는 방식입니다. 1번의 설명의 답이 되겠고, 최적 적합은 빈 공간을 모두 검색한 후 가장 크기가 작은 공간에 적재하는 방식입니다. 3번의 설명의 답이 되겠습니다. 그리고 마지막 최악 적합은 빈 공간을 모두 검색하고 그중 가장 크기가 큰 공간에 적재하는 방식입니다. 2번 설명의 답이 되겠습니다.

선택미션 - CHAPTER 14의 3번째 절,  프로세서가 사용할 수 있는 프레임이 3개일 때 페이지 참고열이 '2313523423'이면 LRU 페이지 교체 알고리즘은 총 몇 번의 페이지 폴트가 발생하는지 풀어보기

LRU(Least Recently Used) 페이지 교체 알고리즘은 가장 마지막으로 사용된 시간을 토대로 페이지를 교체하는 알고리즘입니다. 따라서 가용프레임이 3개뿐이라면 먼저 페이지 폴트가 발생하는 때는 참조열의 다섯 번째 페이지인 페이지 5입니다. 이때 프레임은 페이지 2가 교체되어 5/3/1이겠네요. 그다음 바로 페이지 2를 만나니 페이지 폴트가 발생합니다. 이때 프레임은 5/3/2입니다. 그다음은 참조열 8번째에 위치한 페이지 4에서 페이지 폴트가 발생하고, 이때 프레임은 4/3/2입니다. 나머지 페이지는 교체하지 않으니, 이 참조열에서 페이지 폴트 횟수는 총 3번입니다.

필기자료

컴퓨터구조 + 운영체제_6주차.pdf
8.61MB


 

마무리 및 소감

벌써 혼공학습단이 마무리된다니 기분이 이상합니다. 이번 학습단은 딱히 컴퓨터를 사용하지 않았기도 했고, 중간의 쉬어가는 주도 없어서 그런가 꽤나 특이했던 것 같습니다. 학부 때 생각도 나고, 또 워낙 흥미로워하는 내용이라 기억에는 오래 남을 듯싶습니다.
다음 혼공을 참여할 수 있으면 좋겠지만... 많이 힘들지 않을까 싶어요. 컴퓨터 관련 소양은 이미 충분하다고 생각합니다. 그래서 다음 방학부터는 이 분야는 필요하면 따로 공부하고 연구에 활용하는 방법을 계속 생각해 보려고요. 특히 Ai랑  빅데이터 분야는 제가 앞으로 쓸 가능성이 매우 농후하니까요. 제 무기가 될 수 있게 만드는 게 필요할 것 같아요. 그때는 은서를 통해서 소식을 전할 수 있었으면 좋겠습니다 ㅎㅎ
아무튼 이렇게 혼공 11기까지 끝났네요! 족장님께서 회고이벤트 걸시면 그때 다시 한번 더 글을 써 보겠습니다. 그럼 안녕~
 

출처

혼자 공부하는 컴퓨터구조 + 운영체제 p.390 ~ p.480