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

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

1. 프로그램과 프로세스의 차이

프로그램은 저장된 코드로, 실행되지 않는 정적인 상태다. 반면, 프로세스는 프로그램이 실행되어 메모리에 올라간 상태로, CPU와 메모리를 할당받아 동작한다. 즉, 프로그램이 실행되면 프로세스가 된다.

2. 멀티프로그래밍과 멀티프로세싱의 차이

  • 멀티프로그래밍: 하나의 CPU가 여러 프로그램을 번갈아 가면서 실행하는 방식으로, CPU 사용률을 높이는 것이 목적이다.

     

  • 멀티프로세싱: 여러 개의 CPU를 사용하여 여러 작업을 동시에 실행하는 방식으로, 성능을 향상시키는 것이 목적이다.

3. 운영체제가 프로세스를 관리하는 방법

운영체제는 프로세스를 효율적으로 관리하기 위해 프로세스 스케줄러를 사용한다. 이는 실행 가능한 프로세스를 스케줄링하여 CPU에 할당하는 역할을 한다.

4. 컨텍스트 스위칭(Context Switching)

컨텍스트 스위칭은 CPU가 실행 중인 프로세스를 변경할 때 현재 프로세스의 상태를 저장하고, 새로운 프로세스의 상태를 복원하는 과정이다. 이 과정에서 오버헤드가 발생할 수 있다.

추가: 폴링 방식 대신 해결 방법

현재 코드처럼 일정 주기로 상태를 체크하는 방식(폴링)은 비효율적이다. 이를 해결하기 위해 이벤트 기반 방식을 사용할 수 있다.

  • 이벤트 리스너 방식: 특정 이벤트가 발생하면 바로 실행되도록 설정한다.

  • 콜백 함수: 특정 조건이 만족될 때 자동으로 실행되는 함수 사용.

  • 스레드와 동기화: 별도의 스레드에서 신호를 감지하고 필요할 때만 실행.

     

댓글을 작성해보세요.

채널톡 아이콘