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

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

운영체제

 

1.

while(true){
      wait(1); // 1초 멈춤
      bool isActivated = checkSkillActivated(); // 체크
    }

위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다.

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

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

이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?

 

  • 인터럽트 방식을 사용한다. 인터럽트는 폴링 방식의 단점을 해결한 방식인데 CPU가 입출력 관리자에게 입출력 명령을 내리고 자기는 다른 작업을 계속하는 방식이다.

 

  1. 프로그램과 프로세스가 어떻게 다른가요?

     

     

  • 프로그램은 컴퓨터 관점에서 하드 디스크. 즉, 저장 장치(HDD, SDD)만 사용하는 수동적인 존재이다.

  • 반면 프로세스는 메모리도 사용하고 운영체제의 CPU 스케줄링 알고리즘에 따라서 CPU도 사용하고 필요에 따라 입력과 출력을 하기 때문에 능동적인 존재이다.

 

  1. 멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?

  • 멀티 프로그래밍은 메모리에 여러 개의 프로세스가 올라온 것이다.

  • 멀티 프로세싱은 CPU가 여러 개의 프로세스를 처리하는 것이다.

 

  1. 운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?

  • PCB(Process Control Block)를 사용한다.

  • 포인터, 프로세스 상태, 프로세스 ID, 프로그램 카운터, 레지스터 정보, 메모리 관련 정보, CPU 스케줄링 정보 등 여러 정보가 있다.

 

  1. 컨텍스트 스위칭이란 뭔가요?

  • 컨텍스트 스위칭은 프로세스를 실행하는 중에 다른 프로세스를 실행하기 위해 실행 중인 프로세스의 상태를 저장하고 다른 프로세스의 상태 값으로 교체하는 작업이다.

 

 


자료구조와 알고리즘

 

  1. 여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다.

이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요?

이유를 함께 적어주세요.

 

  • 해시 테이블을 사용할 것 같다.

  • 해시 테이블은 평균적으로 O(1) 시간 복잡도를 가지기 때문에 학생의 ID나 이름과 같은 고유한 값을 해시 키로 사용하면 학생 정보를 빠르게 검색할 수 있기 때문이다.

  • 해시 테이블은 평균적으로 데이터의 삽입과 삭제도 매우 빠르게 처리된다. 새로운 학생을 추가하거나 어떤 학생을 제거할 때도 효율적이라고 생각한다.

 

  1. 여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다.

주문은 들어온 순서대로 처리됩니다.

이 때 여러분이라면 어떤 자료구조를 선택하실 건가요?

이유를 함께 적어주세요.

 

  • 주문이 들어온 순서대로 처리된다는 점을 고려할 때 "큐(Queue)" 자료구조를 선택할 것 같다.

  • 큐는 FIFO 방식으로 작동하는 자료구조다. 그래서 먼저 들어온 주문이 먼저 처리되기 때문에 주문 처리 시스템에 적합한 구조라고 생각한다.

 

 

댓글을 작성해보세요.

채널톡 아이콘