![[워밍업 클럽 3기 CS 전공지식] 3주차 운영체제 미션](https://cdn.inflearn.com/public/files/blogs/effec4c9-2b84-4ee5-ab3d-b530524e0c63/인프런 워밍업클럽 스터디 3기.png)
[워밍업 클럽 3기 CS 전공지식] 3주차 운영체제 미션
메모리의 종류는 어떤것들이 있나요? 각 메모리의 특징도 함께 적어주세요.
레지스터
가장 빠른 기억 장소 CPU 내에 존재합니다.
컴퓨터의 전원이 꺼지면 데이터가 사라지기 때문에 휘발성 메모리라고 부릅니다.
캐시
레지스터와 메인메모리의 속도 차이를 해결해줍니다.
메인메모리에 있는 값을 레지스터로 옮기려면 한참 걸리기 때문에 필요할 것 같은 데이터를 미리 가져옵니다.
메인메모리
운영체제와 다른 프로세스들이 올라가는 공간입니다.
전원이 공급되지 않으면 데이터가 지워지기 때문에 휘발성 메모리라고 부릅니다.
하드디스크(HDD)나 SSD 보다 속도는 빠르지만 가격이 비싸서 데이터를 저장하기 보다는 실행 중인 프로그램만 올립니다.
보조저장장치 (HDD, SSD)
사무용 프로그램이나 게임, 작업한 파일을 저장할 때 필요합니다.
메인메모리에 비해 가격이 저렴하고 전원이 공급되지 않아도 데이터가 지워지지 않는 비휘발성 메모리 입니다.
메모리에 접근하는 시간이 보조저장장치 쪽으로 갈수록 느려집니다.
사용자 프로세스가 메모리의 운영체제 영역에 침범하지 못하도록 만든 레지스터는 어떤 레지스터일까요?
경계 레지스터
CPU 내에 존재하는 레지스터로 메모리 관리자가 사용자 프로세스가 경계 레지스터의 값을 벗어났는지
검사하고 만약 벗어났다면 해당 프로세스를 종료 시킵니다.
메모리 할당 방식에서 가변 분할 방식과 고정 분할 방식의 장단점은 뭔가요?
가변 분할 방식
장점
메모리에 연속된 공간에 할당되기 때문에 낭비되는 공간이 없습니다. (내부 단편화가 없습니다.)
프로세스 크기에 딱 맞게 할당됩니다.
단점
'외부 단편화'가 발생합니다.
프로세스가 사용한 메모리를 반납 후 다른 프로그램이 메모리를 사용하려고 할 때
반납된 메모리 2개 영역을 합치면 다른 프로그램이 메모리를 사용할 수 있는데 연속되지 않은 메모리 공간이라서 사용하지 못합니다.
고정 분할 장식
장점
구현이 간단하고 오버헤드가 적습니다.
같은 크기로 나누기 때문에 단순합니다.
단점
작은 프로세스도 큰 영역에 할당되어서 공간이 낭비되는 '내부 단편화'가 발생합니다.
CPU 사용률을 올리기 위해 멀티프로그래밍을 올렸지만 스왑이 더 많이 이루어져 CPU 사용률이 0%에 가까워 지는 것을 뭐라고 할까요?
스레싱
해결 방법
하드웨어적으로 해결
메모리 크기를 늘립니다.
소프트웨어적으로 해결
프로세스가 실행되면 일정량의 페이지가 할당됩니다.
Page Fault 가 발생하면 더 많은 페이지를 할당합니다.
Page Fault 가 너무 적게 발생하면 메모리가 낭비되는 것이라고 판단해 페이지를 회수합니다.
=> 프로세스가 실행되는 동안 해당 프로세스에게 맞는 적절한 페이지 수가 결정됩니다.
HDD나 SSD는 컴퓨터를 실행시키는데 꼭 필요한 걸까요?
이유를 함께 적어주세요.
필요하다고 생각합니다.
컴퓨터가 부팅되면 HDD나 SSD에 저장되어 있는 운영체제가 메모리에 올라오게 됩니다.
만약에 운영체제 없이 컴퓨터만 실행 한다면 필요 없을 수도 있습니다.
파일을 삭제해도 포렌식으로 파일을 복구할 수 있는 이유가 무엇일까요?
특정 파일을 삭제할 때 파일 시스템은 파일의 모든 정보를 지우는 것이 아닙니다.
파일 테이블의 헤더를 삭제하고 free block list에 추가를 합니다.
이렇게 처리하면 사용자는 파일이 삭제된 것처럼 느껴지지만 사용했던 블록의 데이터는 그대로 남아있습니다.
그래서 데이터를 복구할 수 있습니다.
※ 출처
[인프런 / 그림으로 쉽게 배우는 운영체제 (감자) / 섹션 8~10]
댓글을 작성해보세요.