
인프런 워밍업 클럽 CS 3기 - 1주차 미션(운영체제)
운영체제
while(true){
wait(1); // 1초 멈춤
bool isActivated = checkSkillActivated(); // 체크
}
위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다. 이 방식은 폴링방식입니다. 1초마다 체크하기 때문에 성능에 좋지 않습니다. 이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요?
인터럽트 방식을 사용하면 문제를 해결할 수 있음
인터럽트 방식은 입출력이 완료되면 CPU에 인터럽트 신호를 보내 현재 실행 중인 프로세스를 중단하고 인터럽트 서비스 루틴을 실행하여 인터럽트를 처리 후 프로세스를 재실행
프로그램과 프로세스가 어떻게 다른가요?
프로그램 : 하드디스크에 저장되어 있는 실행파일(.exe 파일)
실행파일은 해당 프로그램의 동작에 대한 코드로 이루어져 있음
프로세스 : 프로그램을 실행하여 해당 프로그램이 하드디스크에서 메모리로 올려져서 실행 중인 프로그램
멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?
멀티 프로그래밍 : 하나의 CPU에서 여러 개의 프로세스를 메모리에 올려서 처리하는 기술
멀티 프로세싱 : 여러 개의 CPU를 이용하여 프로세스를 처리하는 기술
운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?
스케쥴링을 이용하여 각 프로세스에 CPU를 할당 및 해제하여 프로세스의 실행을 관리
스케쥴링에 필요한 프로세스의 정보를 각 프로세스의 PCB에 저장
컨텍스트 스위칭이란 뭔가요?
CPU에 실행 중인 프로세스를 다른 프로세스로 교체하는 기술
운영체제에서 CPU에 실행 중인 프로세스의 점유 시간이 끝나면 인터럽트를 발생시켜 프로세스의 상태를 PCB에 저장한 후 메모리에 저장하고 교체할 프로세스의 PCB를 메모리에서 CPU에 가져와 실행시켜줌
댓글을 작성해보세요.