
인프런 워밍업 클럽 CS 3기 3주차 미션 (운영체제)
운영체제
메모리의 종류는 어떤것들이 있나요? 각 메모리의 특징도 함께 적어주세요.
레지스터
- 가장 빠른 기억장소로 CPU내에 존재하며 전원이 공급되지 않으면 데이터가 사라지는 휘발성 메모리
- 레지스터의 크기에 따라 32bit CPU, 64bit CPU로 나뉨
캐시-
레지스터와 메모리의 중간 다리 역할을 하는 메모리
- 레지스터가 필요로 할 것 같은 데이터를 메인메모리에서 미리 가져와서 저장해두는 장소- 휘발성 메모리
- 성능 상의 이유로 L1, L2, L3등 여러 개가 존재
메인 메모리- 실제 운영체제와 다른 프로세스들이 올라가는 공간
- 전원이 공급되지 않으면 데이터가 사라지는 휘발성 메모리
- 보조저장장치보다 가격이 비싸고 휘발성이기 때문에 실행 중인 프로그램만 올림
보조기억장치- 가격이 저렴하고 전원이 공급되지 않아도 데이터가 지워지지 않는 비휘발성 메모리
사용자 프로세스가 메모리의 운영체제 영역에 침범하지 못하도록 만든 레지스터는 어떤 레지스터일까요?
경계 레지스터
메모리 관리자가 사용자 프로세스가 경계 레지스터의 값을 벗어났는지 검사하고 만약 벗어났다면 그 프로세스를 종료시킵니다.
메모리 할당 방식에서 가변 분할 방식과 고정 분할 방식의 장단점은 뭔가요?
가변 분할 방식은 프로세스의 크기에 딱 맞게 메모리가 할당되기 때문에 내부단편화 문제가 발생하지 않으나 메모리에 충분한 공간이 있음에도 연속된 빈 공간이 부족하여 메모리를 할당할 수 없는 외부단편화 문제가 발생할 수 있습니다.
고정 분할 방식은 메모리를 같은 크기로 나누기 때문에 구현이 간단하고 오버헤드가 작으나 고정 크기가 프로세스가 필요한 크기보다 클 때 내부의 빈 공간이 사용되지 않고 낭비되는 문제인 내부단편화가 발생합니다.CPU 사용률을 올리기 위해 멀티프로그래밍을 올렸지만 스왑이 더 많이 이루어져 CPU 사용률이 0%에 가까워 지는 것을 뭐라고 할까요?
CPU 사용률을 올리기 위해 멀티프로그래밍의 정도를 올렸지만 메모리 부족으로 인해 잦은 스왑이 일어나 CPU 사용률은 계속 떨어지게 되는 현상을 스레싱(Thrashing)이라고 합니다.
HDD나 SSD는 컴퓨터를 실행시키는데 꼭 필요한 걸까요?
메인 메모리의 경우 휘발성 메모리로 전원이 끊기면 모든 데이터가 삭제됩니다. 따라서 전원이 끊겨도 운영체제나 다른 프로그램들을 안전하게 보관할 필요가 있으므로 보조기억장치는 반드시 필요합니다.
파일을 삭제해도 포렌식으로 파일을 복구할 수 있는 이유가 무엇일까요?
파일시스템은 빈 공간을 효율적으로 관리하기 위해 빈 공간을 모아둔 free block list를 가지고 있습니다. 파일을 삭제하면 데이터까지 삭제되는 것이 아니라 파일의 헤더만을 지우고 free block list에 추가하기 때문에 포렌식을 통해 파일의 데이터를 복구할 수 있습니다.
댓글을 작성해보세요.