인프런 워밍업 클럽 스터디 3기 - CS 전공지식(운영체제) <셋째 주 미션>

인프런 워밍업 클럽 스터디 3기 - CS 전공지식(운영체제) <셋째 주 미션>

1. 메모리의 종류는 어떤 것들이 있나요? 각 메모리의 특징도 함께 적어주세요.

강의에서 배운 메모리에는 Register, Cache Memory, RAM, 보조저장장치(SSD/HDD)가 있습니다. 나열한 순서대로 처리 속도가 느려진다는 것이 공통된 특징입니다. 각 메모리의 고유 특징은 다음과 같습니다.

Register는 명령어나 연산의 중간 결과값 등을 일시 저장하는 임시 기억장치로, 보통 CPU 내부에 위치합니다. CPU가 연산해야 할 데이터를 RAM에서 가져와 여기에 저장한 후에 연산을 시작합니다. 따라서, CPU의 연산이 이루어지는 곳이라는 점이 차별적 특징입니다.

Cache Memory는 CPU와 메인 메모리 간 데이터 접근 속도의 차이를 최소화하기 위해 사용되는 고속 임시 저장소입니다. CPU가 자주 사용할 만한 데이터를 RAM에서 미리 가져와놓고(=Caching), CPU가 필요할 때 RAM보다 우선적으로 접근하도록 하는 용도로 쓰입니다. Cache Hit이 많으면 시스템의 성능이 올라가겠지만 Cache Miss가 많으면 추가 Latency가 발생해 오히려 Cache Memory가 없는 시스템보다도 시스템의 성능이 떨어질 수 있으므로 Cache Hit Ratio를 향상시키는 게 중요합니다.

RAM(Random Access Memory)는 CPU가 즉각적으로 접근할 수 있으며, 프로그램 실행과 데이터 처리를 위해 일시적으로 명령어나 데이터를 저장하는 휘발성 메모리 장치입니다. CPU에서 직접 접근이 가능한 유일한 저장 장치라는 게 가장 큰 특징입니다.

마지막으로 보조저장장치(SSD/HDD)는 데이터의 장기 저장을 목적으로 설계된 비휘발성(Non-volatile) 메모리입니다. 시스템에 전원이 들어오지 않아도 저장된 데이터가 지워지지 않는다는 고유 특징을 갖고 있습니다.


2. 사용자 프로세스가 메모리의 운영체제 영역에 침범하지 못하도록 만든 레지스터는 어떤 레지스터일까요?

경계 레지스터(Boundary Register)입니다. 경계 레지스터에는 유저 및 응용프로그램이 접근하면 안 되는 OS 영역의 크기 정보가 들어 있습니다. MMU는 사용자의 요청 가상 주소가 Base Register의 값과 Boundary Register의 값을 더한 벗어나는지 검사하고, 만약 벗어났다면 OS 영역을 침범했다고 판단하고 그 프로세스를 종료시킵니다.


3. 메모리 할당 방식에서 가변 분할 방식과 고정 분할 방식의 장단점은 뭔가요?

가변 분할 방식은 외부 단편화로 인한 Overhead가 발생한다는 단점이 있지만, 각 논리 영역을 다른 프로세스와 공유하기 위한 추가 분할 작업을 할 필요 없고 각 영역에 대한 메모리 접근 보호에도 편의성이 높다는 장점이 있다. 한편 고정 분할 방식은 구현이 쉽고 오버헤드가 적다는 장점과 내부 단편화로 인한 Overhead라는 단점이 있습니다. 현대에는 이 두 방식을 혼합해 외부 단편화 문제를 없애고 내부 단편화 시 남는 메모리 공간을 최소화한 버디 시스템을 활용합니다.


4. CPU 사용률을 올리기 위해 멀티프로그래밍을 했지만, 스왑이 더 많이 이루어져 CPU 사용률이 0%에 가까워지는 것을 뭐라고 할까요?

스레싱(Thrashing)입니다. 이 문제를 해결하려면 하드웨어적으로는 물리 메모리 증설로 해결할 수 있으며, 소프트웨어적으로는 Working Set Model을 활용해 완화할 수 있습니다.


5. HDD나 SSD는 컴퓨터를 실행시키는 데 꼭 필요한 걸까요? 이유를 함께 적어주세요.

컴퓨터를 '연산 장치'로 규정한다면 필요 없겠지만, 'Personal Virtual Workspace'로 본다면 꼭 필요하다고 생각합니다. 저는 몸이 불편해 현실에서 할 수 있는 작업이 매우 제한되어 있고, 따라서 이미 매우 범용적으로 컴퓨터를 활용하는 현대인들과 비교해서도 압도적으로 많은 작업에 컴퓨터를 활용하고 있습니다. 비휘발성 보조저장장치가 없다면 제가 작업한 것들을 유지하기 위해 컴퓨터를 24/7 켜놓거나 클라우드 공간에 업로드해야 합니다. 전자는 전기세 폭탄 문제와 정전 등 대처 불가능한 외부 문제를, 후자는 보안 문제가 있습니다. 이건 좀 비논리적이고 가벼운 설명이었고(한 번쯤 해 보고 싶었습니다 ㅋㅋ), Computer Architecture적 관점에서도 약 30GB 정도인 윈도우11 기준으로 OS 설치에만 30GB의 RAM이 필요하니 컴퓨터 부품값이 현격히 상승합니다.


6. 파일을 삭제해도 포렌식으로 파일을 복구할 수 있는 이유가 무엇일까요?

파일을 삭제하더라도 파일의 데이터는 지우지 않고 헤더 정보만 지우는 것이기 때문입니다. 유저가 파일을 삭제하면 파일 할당 테이블의 헤더 정보만 삭제한 뒤, 헤더가 없는 블록을 Free Block List에 따로 관리합니다.

댓글을 작성해보세요.

채널톡 아이콘