inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[인프런 워밍업클럽 2기] CS전공지식_Mission03

빠타박스
1

운영체제

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

CPU와 메인 메모리 간의 속도차를 해결하기 위해 CPU에는 데이터를 임시로 저장하고 계산처리하는 곳을 만들어두었다.

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

경계 레지스터 ( Boundary Register ) : 주기억 장치(RAM)내에 존재하는 프로그램은 크게 운영체제와 사용자 영역으로 나뉘는데,

사용자가 영역에 존재하는 OS영역에 침범하지 못하도록 한다.

 

 

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

가변분할방식(동적)

 

 

고정분할방식(정적)

 

 

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

 

 

 

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

기본적으로 하드나 플래쉬 메모리 같은 경우 프로그램이나 파일 운영체제의 데이터를 저장하고 중요한 보안적인 처리를 위해서 필요하기도 하다.

우리가 메인보드의 각 시스템을 사용하기 위해서는 일종의 처리방식이 필요하고 중계해주는 역할이 필요하다.

그래서 이것들을 저장하고 전원이 켜질때 마다 불러올 곳이 필요한데 그 위치가 저장장치이다.

 

어찌 되었든 메모리도 CPU도 저장하는 능력을 가졌지만. 가격이 비싸고, 휘발성이기에 데이터를 저장하기에는 별로 효율적이지 못하다.

그래서 이 데이터를 저장하고 장기기억을 위해서 보조기억장치인HDD와 SSD를 사용한다.

 

우리가 운영체제를 설치할 때 일부 공간을 저장장치에 저장하게 된다.
그 공간을 우리가 접근하여 지울수도 있지만. 보통 일반 사용자가 잘 알수는 없다.

그곳에 운영체제에 대한 보안적인 부분이나. 시스템 처리 등 각종 프로그램들이 들어가 있다.

 

  1. 가격이 저렴하다.

  2. 장기기억이 가능하다

  3. 전원이 꺼져도 남아있다.

 

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

 

ps : 참고로 핸드폰 또한 내부 기억장치에 삭제된 것 처럼 보여도 데이터 복구가 일부가능하다. 완전한 복구는 아니지만.

비슷하게 포렌식 복구가 가능하다 (그래서 초기화 공장초기화 여러번 하라는 이유가 그때문일 것이다)

 

물론 포렌식 복구가 불가능한 경우도 있다.

  1. 보안

  2. FBE(파일기반암호화)기술 로 인해서 암호화키가 통째로 날아가 기존 데이터를 사용할 수 없게 만드는 기술

     

  3. 점차 나날히 발전하는 현대의 기술들이 이런 개선을 통해 파일의 보안성을 강조하고 있는 상태이다.

  4. 이렇게 복구가 가능하다면. 산업스파이나, 어떤 문제로 인해 발생할 것에 대해 취약해질 수 있기에. 이런 것들을 소프트웨어적으로 개선하게 될 것으로 보인다.

 

자료구조와 알고리즘

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

| 버블정렬 | 선택정렬 | 삽입정렬 | 병합정렬 | 퀵정렬 |

| O(n²) | O(n²) | O(n²) | O(n log n) | O(n log n) |

 

전체 정리

 

| Better | <= O(1) < O(log n) < O(n) < O(n×log n) < O(n2) < O(2n) < O(n!) => | Worse |

상수 함수 < 로그 함수 < 선형 함수 < 다항 함수 < 지수 함수 < 재귀 함수

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

 

 

메모이 제이션

타뷸레이션

 

 

둘다 장단점이 있다.

메모이제이션을 활용해서 계산 결과를 저장하는 방식인 직관적인 상태라면 메모이제이션이 유리

직관적이지 않으면 타뷸레이션을 사용해서 메모리도 절약하고 속도도 빠르게 할 수 있다.

 

위 질문대로라면 재귀로 쉽게 구현할 수 있다고 말하고 있다. 그렇다면 메모이제이션을 사용하는편이 좋을 것 같다.

 

 

 

알고리즘 · 자료구조 cs-미션 cs-미션-발자국 cs전공지식 자료구조 알고리즘 워밍업클럽

답변 0