🎁 모든 강의 30% + 무료 강의 선물🎁

CS 미션 3주차

CS 미션 3주차

운영체제

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

  • 레지스터

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

    • 휘발성 메모리

  • 캐시

    • 레지스터와 메인 메모리 사이에 존재하는 메모리

    • 레지스터와 메인 메모리 데이터 속도의 차이 때문에 필요한 데이터를 미리 갖고와서 저장하는 공간

  • 메인 메모리

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

    • 휘발성 메모리

  • 보조 저장 장치

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

     

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

  • 경계 레지스터

    • CPU내에 존재하는 레지스터로 메모리 관리자는 사용자 프로세스가 경계 레지스터의 값을 벗어 났는지 확인하고, 침범했다면 사용자 프로세스를 종료 시킴.

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

  • 가변 분할 방식

    • 메모리에 연속된 공간에 할당 되기 때문에 낭비되는 공간인 내부 단편화가 없음

    • 외부 단편화가 발생

  • 고정 분할 방식

    • 구현이 간단하고 오버헤드가 적음

    • 작은 프로세스도 큰 공간에 할당 되면 내부 단편화 발생

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

  • 스레싱

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

  • 실행이 가능하긴 하나 일반 메모리에 파일을 저장 및 운영체제를 저장하는 방식은 비효율적이라 HDD 또는 SSD가 필요하다.

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

  • 파일이 직접 삭제되는게 아닌 Free Block List에 파일의 사용 공간이 등록되고 블록은 남아 있기 때문.

 


자료구조와 알고리즘

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

  • 버블 정렬

    • 이해와 구현이 간단

    • 좋지 않은 성능

    • O(n^2)

  • 선택 정렬

    • 이해과 우견이 간단

    • 좋지 않은 성능

    • O(n^2)

  • 삽입 정렬

    • 이해과 우견이 간단

    • 좋지 않은 성능

    • O(n^2)

  • 병합 정렬

    • 성능이 좋음

    • 이해와 구현이 어려움

       

    • O(nlogn)

  • 퀵 정렬

    • 성능이 좋음

    • 이해와 구현이 어려움

    • Θ(nlogn)

 

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

     

    • 메모리가 부족한 시스템에서는 메모이제이션 대신 타뷸레이션을 사용

    • 메모이제이션은 중복 계산이 발생하여 성능 및 메모리 문제가 발생하지만 타뷸레이션은 중복된 값들을 저장하고 있어 중복 실행이 방지됨.

댓글을 작성해보세요.


채널톡 아이콘