🎁 모든 강의 30% + 무료 강의 선물🎁

[인프런 워밍업 클럽 스터디 3기 - CS전공지식] 1주차 과제 - 운영체제

[인프런 워밍업 클럽 스터디 3기 - CS전공지식] 1주차 과제 - 운영체제

1주차 과제 제출 - 운영체제

 

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

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

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

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

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

인터럽트 방식.

입출력 작업을 진행할때, 입출력 작업이 완료되면, CPU에게 신호를 주고 CPU는 그 신호를 받아 인터럽트 서비스 루틴을 실행시켜 작업을 완료하는 방식.

비동기적으로 동작하기 때문에 성능면에서 폴링방식보다 훨씬 좋다.


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

프로그램 : 하드디스크 등과 같은 저장 장치에 저장된 명령문의 집합체. (어플리케이션/앱/.exe) / 하드 디스크와 같은 저장 장치만 사용하는 수동적인 존재

프로세스 : 하드디스크에 저장된 프로그램이 메모리에 올라갔을 때 실행 중인 프로그램 / 메모리도 사용하고, 운영체제의 CPU 스케줄링 알고리즘에 따라서 CPU도 사용하고, 필요에 따라 I/O도 사용하기 때문에 능동적인 존재.


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

멀티프로그래밍 : 하나의 CPU에 여러개의 프로세스를 올려 처리하는 것.

멀티프로세싱 : 여러개의 CPU로 프로세스를 처리하는 것.


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

"준비 상태의 다중큐"를 참조하여 프로세스의 우선순위를 보고 CPU할당과 해제를 하는 CPU 스케줄링을 사용함.


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

CPU 점유 시간이 끝나거나, I/O요청이 있거나, 다른 종류의 인터럽트가 있을때, 현재 실행중인 프로세스의 상태를 저장하고, 다른 프로세스의 상태값으로 교체하는 작업

 

댓글을 작성해보세요.


채널톡 아이콘