CS 미션
운영체제
1.
while(true){
wait(1); // 1초 멈춤
bool isActivated = checkSkillActivated(); // 체크
}
위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다. 이 방식은 폴링방식입니다. 1초마다 체크하기 때문에 성능에 좋지 않습니다. 이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?
인터럽트
프로그램과 프로세스가 어떻게 다른가요?
프로그램: 실행 가능한 코드, 즉 명령어들의 집합입니다. 디스크에 저장된 정적인 상태입니다.
프로세스: 실행 중인 프로그램을 의미하며, 운영체제에 의해 관리되는 동적인 개체입니다. 프로그램이 메모리 상에서 실행되면 프로세스가 됩니다.
멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?
멀티프로그래밍: 여러 프로그램이 메모리에 적재되어 있는 상태에서, CPU가 이들 프로그램을 번갈아가며 실행하는 방식입니다. CPU는 항상 바쁘게 작업을 처리하게 됩니다.
멀티프로세싱: 여러 CPU를 사용하여 여러 프로그램을 동시에 실행하는 방식입니다. 여러 프로세서(혹은 코어)를 사용하여 작업을 병렬 처리할 수 있습니다.
운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?
PCB
컨텍스트 스위칭이란 뭔가요?
CPU가 현재 실행 중인 프로세스의 상태(레지스터, 프로그램 카운터, 스택 등)를 저장하고, 다음 프로세스를 실행하기 위해 해당 프로세스의 상태를 복원하는 작업
자료구조와 알고리즘
여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다.
이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요? 이유를 함께 적어주세요.
해시맵(HashMap)을 선택할 수 있습니다. 해시맵은 키-값 쌍으로 데이터를 저장하며, 학생의 학번이나 이름을 키로 사용하고, 그에 대한 정보를 값으로 저장할 수 있습니다. 해시맵은 평균적으로 O(1)의 시간 복잡도로 빠르게 검색할 수 있어, 많은 학생 정보에 대한 접근이 효율적입니다.
여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.
큐(Queue)를 선택할 수 있습니다. 큐는 선입선출(FIFO, First In First Out) 방식으로 데이터를 처리하는 자료구조입니다. 주문은 들어온 순서대로 처리해야 하므로, 큐를 사용하면 가장 먼저 들어온 주문을 가장 먼저 처리할 수 있습니다.
댓글을 작성해보세요.