[인프런 워밍업 클럽 2기 CS] 1주차 미션
1개월 전
운영체제
1.
while(true){
wait(1); // 1초 멈춤
bool isActivated = checkSkillActivated(); // 체크
}
위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다. 이 방식은 폴링방식입니다. 1초마다 체크하기 때문에 성능에 좋지 않습니다. 이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?
인터럽트
cpu는 입출력 관리자에게 입출력명령 > 다른 작업 > 입출력관리자 입출력 완료로 CPU에게 신호 > 인터럽트 서비스 루틴을 실행시켜 작업 완료시킴
2. 프로그램과 프로세스가 어떻게 다른가요?
프로그램은 하드디스크 등 저장장치에 저장된 명령문의 집합체이고
프로세스는 실행 중인 프로그램 하드디스크에 저장된 프로그램이 메모리에 올라갔을 때 실행 중인 프로그램이다
3. 멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?
멀티프로그래밍은 메모리에 여러 개의 프로세스 올라오고
멀티프로세스는 cpu관점으로 cpu가 여러 개의 프로세스 처리한다
4. 운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?
PCB 사용
프로세스 만들어지면 운영체제는 해당 프로세스의 정보를 가진 PCB를 만들고 저장
5. 컨텍스트 스위칭이란 뭔가요?
프로세스 실행 중 다른 프로세스를 실행하기 위해 실행하던 프로세스를 저장하고 다른 프로세스로 교체하는 작업
자료구조와 알고리즘
1. 여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다. 이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요? 이유를 함께 적어주세요.
해시 테이블
고유한 값이 아닌 키-값으로 중복된 키를 허용하지 않으면 어떤 학생이든 학생의 정보를 중복하지 않고 저장할 수 있다
또한 열람도 해야 하기에 빠른 데이터 읽기의 장점을 가진 해시테이블 적합하다
2. 여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.
큐
먼저 들어오는 순서대로 처리되는데 주문의 경우 삽입은 중간 삽입이 없고 순서대로 주문번호가 늘어가는 구조여서 큐가 적합하다
댓글을 작성해보세요.