인프런 워밍업 클럽 스터디 2기 CS 1주차 과제

인프런 워밍업 클럽 스터디 2기 CS 1주차 과제

운영체제

while(true){
    wait(1); // 1초 멈춤
    bool isActivated = checkSkillActivated(); // 체크
}
  1. 위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다.

    이 방식은 폴링방식입니다.

    1초마다 체크하기 때문에 성능에 좋지 않습니다.

    이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?
    (답): 인터럽트

  2. 프로그램과 프로세스가 어떻게 다른가요?
    (답): 프로그램은 하드디스크와 같은 저장장치에 저장된 명령문에 집합체이고, 프로세스는 프로그램이 메모리에서 실행중인 상태를 말한다.

  3. 멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?
    (답): 멀티프로그래밍은 메모리에 여러 프로세스가 올라온 것을 말하고, 멀티프로세싱은 CPU가 여러 프로세스를 처리하는 것을 말한다. 즉, 멀티프로그래밍은 메모리 관점이고 멀티프로세싱은 CPU 관점이다.

  4. 운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?
    (답): CPU 스케줄링

  5. 컨텍스트 스위칭이란 뭔가요?
    (답): CPU가 현재 실행중인 프로세스의 상태를 저장하고 다른 프로세스의 상태로 교체하여 실행하는 것을 말한다.

    자료구조와 알고리즘

  1. 여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다. 이때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요? (

    이유를 함께 적어주세요.)
    (답): 해시테이블, 이유는 학생 이름을 이용하여 상수시간(O(1))의 성능으로 빠르게 학생 정보를 열람할 수 있기 때문이다.
    연결리스트 또는 배열로 구현할 경우..
    - 연결리스트로 구현한다면 저장/삭제에 용이하지만, 조회는 해당 인덱스까지 노드를 찾아가야 하기 때문에 O(n)의 성능이 발생
    - 배열로 구현한다면, 조회는 인덱스를 이용하여 메모리 주소에 바로 접근이 가능하기 때문에 O(1), 저장/삭제에는 배열 특성상 새로운 메모리 공간을 확보해야 하기 때문에 연결리스트에 비해 불리하다.

  2. 여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.

     
    (답): 큐, 이유는 큐 자료구조의 특성인 FIFO이기 때문이다. 처음 들어온 자료(First In)가 먼저 나가기(First Out) 때문

댓글을 작성해보세요.

채널톡 아이콘