CS_전공지식_마지막미션

CS_전공지식_마지막미션

운영체제

 

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

  •  레지스터-가장 빠른 기억장소로 cpu내에 존재, 휘발성 메모리, cpu를 구분할 때 32비트, 64비트라고 하는데 이것이 레지스터를 의미, cpu는 계산을 할 때 메인 메모리에 있는 값을 레지스터로 가져와서 계산, 계산 결과는 다시 메인 메모리에 저장

  • 캐시-레지스터와 메인 메모리 사이에 존재, 메인 메모리에 있는 값을 레지스터로 옮기려면 한참 걸리기 때문에 필요할 것 같은 데이터를 미리 가져오는데, 미리 가져온 데이터를 저장하는 곳

  • 메인메모리-실제 운영체제와 다른 프로세스들이 올라가는 공간, 전환이 공급되지 않으면 데이터가 지워지기 때문에 휘발성 메모리

  • 보조 저장장치( ssd, 하드디스크)-가격이 저렴하고 전원이 공급되지 않아도 데이터가 지어지지 않는 비휘발성 메모리

 

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

 경계 레지스터입니다.

 

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

 -가변 분할 방식

장점: 메모리의 연속된 공간에 할당되기 때문에 더 크게 할당돼서 낭비되는 공간인 내부단편화가 없다.

단점: 외부단편화가 발생한다.

 

-고정 분할 방식

장점: 구현이 간단하고 오버헤드가 적다.

단점: 내부단편화가 발생한다.

 

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

 스레싱입니다.

 

5.HDD나 SSD는 컴퓨터를 실행시키는데 꼭 필요한 걸까요? 이유를 함께 적어주세요.

hdd는 속도가 느리고 hdd를 넣을 큰 공간이 필요하다는 단점이 있지만, 계속해서 저장되어 있어야 하는 데이터들이 있기 때문에 컴퓨터를 실행시키는데 꼭 필요하다고 생각합니다. ssd는 데이터를 덮어 쓸 수가 없고, 똑같은 자리에 데이터를 써야 한다면 데이터를 지워야 하는 횟수가 정해져 있다는 단점이 있지만, hdd처럼 큰 공간이 필요하지 않고, 자석을 갖다대도 훼손되지 않으며, 속도가 빠르다는 장점이 있어 컴퓨터를 실행시키는데 꼭 필요하다고 생각합니다. 다 각자의 장단점이 있기에 둘다 사용해서 장단점을 보완하면 더 좋은 성능의 컴퓨터를 만들 수 있다고 생각합니다.

 

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

 파일시스템은 효율적으로 관리하기 위해 빈 공간을 모아둔 free block list를 가지고 있습니다. 특정 파일을 삭제한다면 파일 시스템은 모든 정보를 지우는 것이 아니라 파일 테이블의 헤더를 지우고 free block list에 추가합니다. 이렇게 처리하면 사용자는 파일이 삭제된 것처럼 느껴지는데, 사용했던 데이터는 남아있기 때문에 포렌식으로 파일을 복구할 수 있습니다.

 

자료구조와 알고리즘

 

  1. 지금까지 배운 5개의 정렬 알고리즘의 장단점과 시간 복잡도를 적어주세요.

- 버블정렬

장점: 이해와 구현이 간단

단점: 성능이 좋지 않음

시간 복잡도: O(n^2)

-선택정렬

장점: 버블정렬과 마찬가지로 이해와 구현이 간단

단점: 버블정렬과 마찬가지로 성능이 좋지 않음

시간 복잡도: O(n^2)

-삽입정렬

장점: 버블정렬, 선택정렬과 마찬가지로 이해와 구현이 간단

단점: 버블, 선택정렬과 마찬가지로 성능이 좋지 않음

시간 복잡도: O(n^2)

-병합정렬

장점: 성능이 좋음

단점: 이해와 구현이 어려움

시간 복잡도: O(nlogn)

-퀵정렬

장점: 병합정렬과 동일

단점: 병합정렬과 동일

시간 복잡도: 평균적으로 세타(nlogn), 최악의 경우 O(n^2)

  1. 메모리가 부족한 시스템에서 어떤 문제를 해결하는데 재귀로 쉽게 구현이 가능할 것 같습니다. 여러분이라면 메모이제이션과 타뷸레이션 중 어떤 걸 이용하실 건가요? 이유를 함께 적어주세요.

 메모이제이션은 재귀를 통해 문제를 하향식으로 해결합니다. 재귀만 이용한다면 성능에 문제가 발생하는데 이를 계산 결과를 저장하는 것으로 보완했습니다. 메모이제이션은 많은 메모리를 사용하여 성능을 향상시킵니다. 따라서 재귀가 직관적일 때는 메모이제이션을 사용합니다. 재귀가 직관적이지 않을 땐 상향식 조건인 타뷸레이션을 이용해 메모리도 절약하고 속도도 빠르게 해결할 수 있습니다. 메모리가 부족한 시스템이지만 재귀로 쉽게 구현이 가능할 것 같으므로 메모이제이션을 사용하는 것이 좋을 것 같다고 생각합니다.

댓글을 작성해보세요.

채널톡 아이콘