[워밍업 클럽 3기] CS 3주차 - 운영체제 미션
메모리의 종류는 어떤것들이 있나요? 각 메모리의 특징도 함께 적어주세요.
1) 레지스터
가장 빠른 기억 장소로 CPU 내 존재
컴퓨터가 꺼지면 데이터가 사라지기 때문에 휘발성 메모리라고 부름
CPU는 계산할 때 메인 메모리에 있는 값을 레지스터로 가져와서 계산 → 결과는 메인 메모리에 저장
2) 캐시
휘발성 메모리
레지스터는 빠르고, 메인메모리는 느린데 여기서 데이터를 가져오기에는 오래 걸림 → 미리 가져온 데이터를 저장하는 곳이 캐시
CPU가 값을 요청해 레지스터로 값을 옮겨야 한다면 단계에 따라 가장 속도가 빠른 L1 캐시를 보고, 없으면 L2 캐시, 여기도 없다면 메인 메모리에서 값 가져옴
3) 메인메모리(RAM)
실제 운영체제와 다른 프로세스들이 올라가는 공간
전원이 공급되지 않으면 데이터가 사라지기 때문에 휘발성 메모리
하드디스크나 SSD 보다 속도는 빠르지만 가격이 비쌈
데이터 저장 보단 실행중인 프로그램만 올림
4) 보조저장장치(HDD, SSD)
가격 저렴
전원이 공급되지 않아도 데이터가 지워지지 않은 비휘발성 메모리
사용자 프로세스가 메모리의 운영체제 영역에 침범하지 못하도록 만든 레지스터는 어떤 레지스터일까요?
경계 레지스터
메모리 할당 방식에서 가변 분할 방식과 고정 분할 방식의 장단점은 뭔가요?
가변 분할 방식
프로세스 크기에 따라 메모리를 가변적으로 분할할 수 있어 내부 단편화가 발생하는 것이 적음
메모리 공간보다 프로세스의 크기가 더 커서 외부 단편화 발생 가능
고정 분할 방식
메모리 할당 시 정해진 크기로 분할하기 때문에 관리, 구현 간단
프로세스 크기보다 큰 공간이 할당되면서 내부 단편화 발생 가능
CPU 사용률을 올리기 위해 멀티프로그래밍을 올렸지만 스왑이 더 많이 이루어져 CPU 사용률이 0%에 가까워 지는 것을 뭐라고 할까요?
스레싱(Thrashing)
HDD나 SSD는 컴퓨터를 실행시키는데 꼭 필요한 걸까요?
CPU, RAM 만으로도 프로그램 실행 가능하기 때문에 필수는 아니지만 운영체제, 프로그램, 데이터 저장을 하기 위해서는 꼭 필요하다고 생각
다른 메모리들은 휘발성 메모리로
전원 끄면 데이터 모두 사라지기 때문에
저장장치 없이는 지속적 사용 불가능
또한 비휘발성, 가격이 저렴한 보조 저장 장치는 필요하다고 생각
파일을 삭제해도 포렌식으로 파일을 복구할 수 있는 이유가 무엇일까요?
파일 삭제 시 파일 테이블에서 해당 파일의 헤더만 삭제되고, 삭제된 파일 자체는 free block list에 추가
실제 디스크의 데이터 블록은 그대로 존재하고 새로운 파일이 해당 위치에 덮어쓰기 전까지는 데이터가 남아 있음
해당 이유로 포렌식으로 파일 복구 가능
댓글을 작성해보세요.