
인프런 워밍업 클럽 스터디 3기 - CS 전공지식(운영체제) -3주차 미션-
운영체제
메모리의 종류는 어떤것들이 있나요? 각 메모리의 특징도 함께 적어주세요.
1. 휘발성 메모리
✔ 레지스터
CPU 내부에서 처리할 명령어나 연산의 중간 결과값 등을 일시 저장하는 임시 기억장치.
범용 레지스터, 세그먼트 레지스터, 포인터 레지스터, 인덱스 레지스터, 플래그 레지스터가 있음.
CPU가 연산해야 할 데이터를 RAM에서 가져와 여기에 저장한 후에 연산을 시작함.
✔ 캐시 메모리(Cache Memory)
메인 메모리(RAM)은 레지스터보다 속도 면에서 느리기 때문에 메인 메모리에서 필요할 것 같은 데이터를 미리 캐시에 저장
성능의 이유로 여러 개를 둔다.
✔ 메인 메모리(RAM)
실제 운영체제와 프로세스들이 올라가는 공간이자 실행중인 프로그램만 올린다.
2 비휘발성 메모리
✔ 보조저장장치(HDD, SSD)
사용자 프로세스가 메모리의 운영체제 영역에 침범하지 못하도록 만든 레지스터는 어떤 레지스터일까요?
사용자 영역이 운영체제 영역으로 침범하는 것을 막기 위해 메모리 관리자는 사용자가 작업을 요청할 때마다 경계 레지스터의 값을 벗어나는지 검사하고, 만약 경계 레지스터를 벗어나는 작업을 요청하는 프로세스가 있으면 그 프로세스를 종료함
메모리 할당 방식에서 가변 분할 방식과 고정 분할 방식의 장단점은 뭔가요?
1. 가변 분할 방식(세그멘테이션)
프로세스가 크면 메모리도 크게 할당
한 프로세스가 메모리에 연속된 공간에 할당되기 때문에 연속 메모리 할당이라 부른다.
✔ 장점
내부 단편화 현상 없음.
✔ 단점
외부 단편화 발생
3MB 프로그램과 2MB 프로그램이 종료되어 공간이 발생되어도 5MB 프로그램이 들어가지 못한다.
2. 고정 분할 방식(페이징)
프로세스의 크기와는 상관없이 메모리를 정해진 방식으로 할당
한 프로세스가 메모리에 분산되어 할당되기 때문에 비연속 메모리 할당이라 부른다.
(5MB 프로그램을 2MB 고정 분할 메모리에 저장 시키려면 2/ 2/ 1 로 분리해야함)
✔ 장점
구현이 간단하고 오버헤드가 적음
✔ 단점
작은 프로세스도 큰 영역에 할당되어서 공간이 낭비되는 내부 단편화가 발생
CPU 사용률을 올리기 위해 멀티프로그래밍을 올렸지만 스왑이 더 많이 이루어져 CPU 사용률이 0%에 가까워 지는 것을 뭐라고 할까요?
스레싱
물리 메모리 공간이 한정되어 있기 때문에 일어나는 현상입니다.
물리 메모리 크기를 늘려서 해결할 수 있고, 프로세스 실행시간 내에 page fault의 발생빈도에 따라 페이지 크기를 조정하거나 워킹셋을 활용하여 해결할 수 있습니다.
워킹셋은 지역성 이론에 따라 최근 가장 많이 조회된 페이지들의 집합을 저장하는 기법이다.
HDD나 SSD는 컴퓨터를 실행시키는데 꼭 필요한 걸까요?
하드 디스크가 없으면 운영체제는 실행시키지 못하고 컴퓨터의 기본적인 부팅만 가능하다.
부팅을 시킬 순 있지만, 운영체제를 실행시키지 못하기 때문에 작업을 수행할 수는 없다.
파일을 삭제해도 포렌식으로 파일을 복구할 수 있는 이유가 무엇일까요?
파일 시스템은 효율적 관리를 위해 빈 공간을 모아둔 free block list를 가지며 파일 삭제시 파일 시스템은 파일의 모든 정보를 지우는 것이 아닌, 파일 테이블의 헤더만을 삭제하고 블럭을 free block list에 추가한다.
이를 통해 사용자는 파일이 삭제된 것 처럼 느끼지만 사용했던 블록의 데이터는 그대로 남아 있어, 새로운 파일이 해당 블록을 덮어쓰기 전까지는 이전 데이터를 포렌식으로 복구할 수 있다.
댓글을 작성해보세요.