[워밍업 클럽 3기] CS 3주차 - 운영체제 미션

[워밍업 클럽 3기] CS 3주차 - 운영체제 미션

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

1) 레지스터

  • 가장 빠른 기억 장소로 CPU 내 존재

  • 컴퓨터가 꺼지면 데이터가 사라지기 때문에 휘발성 메모리라고 부름

  • CPU는 계산할 때 메인 메모리에 있는 값을 레지스터로 가져와서 계산 → 결과는 메인 메모리에 저장

2) 캐시

  • 휘발성 메모리

  • 레지스터는 빠르고, 메인메모리는 느린데 여기서 데이터를 가져오기에는 오래 걸림 → 미리 가져온 데이터를 저장하는 곳이 캐시

  • CPU가 값을 요청해 레지스터로 값을 옮겨야 한다면 단계에 따라 가장 속도가 빠른 L1 캐시를 보고, 없으면 L2 캐시, 여기도 없다면 메인 메모리에서 값 가져옴

3) 메인메모리(RAM)

  • 실제 운영체제와 다른 프로세스들이 올라가는 공간

  • 전원이 공급되지 않으면 데이터가 사라지기 때문에 휘발성 메모리

  • 하드디스크나 SSD 보다 속도는 빠르지만 가격이 비쌈

  • 데이터 저장 보단 실행중인 프로그램만 올림

4) 보조저장장치(HDD, SSD)

  • 가격 저렴

  • 전원이 공급되지 않아도 데이터가 지워지지 않은 비휘발성 메모리


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

  • 경계 레지스터


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

가변 분할 방식

  • 프로세스 크기에 따라 메모리를 가변적으로 분할할 수 있어 내부 단편화가 발생하는 것이 적

  • 메모리 공간보다 프로세스의 크기가 더 커서 외부 단편화 발생 가능

고정 분할 방식

  • 메모리 할당 시 정해진 크기로 분할하기 때문에 관리, 구현 간단

  • 프로세스 크기보다 큰 공간이 할당되면서 내부 단편화 발생 가능


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

  • 스레싱(Thrashing)


HDD나 SSD는 컴퓨터를 실행시키는데 꼭 필요한 걸까요?

  • CPU, RAM 만으로도 프로그램 실행 가능하기 때문에 필수는 아니지만 운영체제, 프로그램, 데이터 저장을 하기 위해서는 꼭 필요하다고 생각

  • 다른 메모리들은 휘발성 메모리로

    전원 끄면 데이터 모두 사라지기 때문에

    저장장치 없이는 지속적 사용 불가능

  • 또한 비휘발성, 가격이 저렴한 보조 저장 장치는 필요하다고 생각


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

  • 파일 삭제 시 파일 테이블에서 해당 파일의 헤더만 삭제되고, 삭제된 파일 자체는 free block list에 추가

  • 실제 디스크의 데이터 블록은 그대로 존재하고 새로운 파일이 해당 위치에 덮어쓰기 전까지는 데이터가 남아 있음

  • 해당 이유로 포렌식으로 파일 복구 가능

댓글을 작성해보세요.

채널톡 아이콘