![[인프런 워밍업 클럽 스터디 3기 - CS전공지식] 1주차 과제 - 운영체제](https://cdn.inflearn.com/public/files/blogs/34568b7e-2ca6-46e5-be99-55888cd695df/inflearnStudy-thumbnail.png)
[인프런 워밍업 클럽 스터디 3기 - CS전공지식] 1주차 과제 - 운영체제
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요청이 있거나, 다른 종류의 인터럽트가 있을때, 현재 실행중인 프로세스의 상태를 저장하고, 다른 프로세스의 상태값으로 교체하는 작업
댓글을 작성해보세요.