[인프런 워밍업 클럽 2기 CS] 3주차 미션

[인프런 워밍업 클럽 2기 CS] 3주차 미션

[운영체제]

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

     
    => CPU에 존재하고 휘발성 메모리인 레지스터, 메인 메모리에 있는 값을 레지스터로 옮기는 시간을 줄이기 위해 데이터를 가져와 저장하는 캐시, 실제 운영체제와 프로세스가 올라가는 휘발성 메모리인 메모리, 비휘발성이며 작업된 데이터를 저장하는 보조 저장장치가 있습니다.

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

  • 메모리 할당 방식에서 가변 분할 방식과 고정 분할 방식의 장단점은 뭔가요?
    => 가변분할 방식은 프로세스 크기에 따라 메모리를 할당하기 때문에 내부 단편화가 일어나지 않지만 외부 단편화가 발생합니다. 고정분할 방식은 외부 단편화를 해결하고, 메모리 관리를 효율적으로 하지만 내부 단편화가 일어나는 단점이 있습니다.

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

  • HDD나 SSD는 컴퓨터를 실행시키는데 꼭 필요한 걸까요? 이유를 함께 적어주세요.
    => 컴퓨터를 활성화 시키기 위해선 CPU를 동작시켜야하는데 이때 운영체제가 필요하다. 이때 운영체제가 저장되어야하는데, RAM과 같은 메모리는 휘발성이므로 저장을 할 수 없지만 HDD나 SSD는 비휘발성으로 운영체제를 저장하여 사용하기 때문에 필요하다.

  • 파일을 삭제해도 포렌식으로 파일을 복구할 수 있는 이유가 무엇일까요?
    => 파일을 삭제하면 모든 정보를 지우는 것 보다 헤더를 삭제하고 free block list에 추가한다. 이때 사용했던 데이터 블록이 그대로 저장되어 있어 복구할 수 있다.


    [자료구조와 알고리즘]

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

  • 버블 정렬

    • 장점: 가장 단순하고 이해가 쉽다.

    • 단점: 성능이 좋지 않다.

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

  • 선택 정렬

    • 장점: 이해와 구현이 간단하다.

    • 단점: 성능이 좋지 않다.

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

  • 삽입 정렬

    • 장점: 이해와 구현이 간단하다.

    • 단점: 성능이 좋지 않다.

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

  • 병합 정렬

    • 장점: 버블, 선택, 삽입 정렬보다 성능이 좋다.

    • 단점: 이해하기 어렵고, 구현하기 어렵다.

    • 시간 복잡도: O(n log n)

  • 퀵 정렬

    • 장점: 적은 메모리 공간을 사용해 성능이 좋다.

    • 단점: 이해하기 어렵고, 구현하기 어렵다.

       

    • 시간복잡도: O(n log n)

  1. 메모리가 부족한 시스템에서 어떤 문제를 해결하는데 재귀로 쉽게 구현이 가능할 것 같습니다. 여러분이라면 메모이제이션과 타뷸레이션 중 어떤 걸 이용하실 건가요? 이유를 함께 적어주세요.
    => 메모이제이션은 재귀를 사용기 때문에 메모리 비용이 크지만, 타뷸레이션은 반복문을 사용하기 때문에 메모리의 크기를 예측 할 수 있습니다. 때문에 타뷸레이션을 사용할 것 같습니다.

    알고리즘 강의 링크 👉그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)


    운영체제 강의 링크 👉그림으로 쉽게 배우는 운영체제

댓글을 작성해보세요.

채널톡 아이콘