[미션] 인프런 워밍업클럽 CS 2기 1주차 미션
운영체제
cCopy codewhile(true){
wait(1); // 1초 대기
bool isActivated = checkSkillActivated(); // 스킬 사용 여부 확인
}
위 코드는 1초마다 플레이어의 스킬 사용 여부를 확인하는 폴링 방식입니다. 하지만 1초마다 상태를 확인하므로 성능 저하를 초래할 수 있습니다. 이 문제를 개선하기 위해 어떤 방법을 사용할 수 있을까요?
인터럽트 방식
CPU는 I/O 장치 관리자에게 명령을 전달하고 나서 다른 작업을 계속 수행합니다. I/O가 완료되면 장치 관리자가 CPU에 신호를 보내고, CPU는 이 신호를 받아 인터럽트 서비스 루틴(ISR)을 실행하여 해당 작업을 처리합니다. 이렇게 하면 CPU가 주기적으로 상태를 확인하지 않아도 되므로 성능이 향상됩니다.
프로그램과 프로세스의 차이는 무엇인가요?
프로그램: 하드디스크와 같은 저장 장치에 저장된 명령어들의 집합
프로세스: 메모리에 적재되어 실행 중인 프로그램
멀티프로그래밍과 멀티프로세싱의 차이는 무엇인가요?
멀티프로그래밍: 메모리에 여러 개의 프로세스가 올라와 있는 것
멀티프로세싱: 여러 개의 프로세스를 CPU가 처리하는 것
운영체제는 프로세스를 관리하기 위해 무엇을 사용하나요?
프로세스 제어 블록(PCB)를 사용합니다.
컨텍스트 스위칭이란 무엇인가요?
컨텍스트 스위칭은 실행 중인 프로세스의 상태를 기억 및 저장하고, 다른 프로세스로 교체하여 실행하는 작업입니다 (PCB 활용)
자료구조와 알고리즘
여러분은 교실의 학생 정보를 저장하고 조회할 수 있는 관리 프로그램을 개발하려고 합니다. 이때 학생 정보를 저장하기 위한 자료구조로 무엇을 선택하시겠습니까? 이유를 함께 적어주세요.
배열 구조를 선택하겠습니다.
학생 정보는 학기 초 입학 시에 주로 작성되고, 후에는 주로 조회만을 수행하는 경우가 많기에 조회 시 O(1)의 시간 복잡도를 가진 배열이 적합합니다.
여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이때 어떤 자료구조를 선택하시겠습니까? 이유를 함께 적어주세요.
큐 자료구조
큐의 FIFO 구조를 감안했을 때 주문이 들어온 순서대로 주문 처리가 가능한 점에 착안하여 큐를 선택하는 것이 적합하다고 생각합니다.
댓글을 작성해보세요.