-
멀티프로그래밍 환경에서의 문제점시스템/운영체제 2020. 5. 7. 10:47
멀티 프로그래밍에서 크게 두 가지 문제점이 있다.
- 특정 프로세스가 무한루프에 빠질 수 있다. -> 해결책[타이머 사용]
- 특정 프로세스가 운영체제 혹은 다른 프로세스를 수정하려 한다. -> 해결책[이중 모드 연산]
위 두 가지를 해결하는 해결 책중 타이머 사용을 먼저 보자.
타이머 사용
- 운영체제가 프로세스 타이머의 카운트를 설정한다.
- 운영체제는 타이머의 카운트를 감소시키면서 카운터가 0이 되면 인터럽트를 발생시킨다.
- 타이머가 인터럽트를 발생시키면 제어는 자동으로 운영체제에게 넘어간다.
- 운영체제는 프로세스의 제어를 회수하거나 문제가 된 프로그램을 종료할 수 있다.
이중 모드 연산
이중 모드란 사용자 모드와 커널 모드를 분리하는 운영하는 모드다.
- 사용자 모드 : 사용자 프로그램이 동작하는 모드다.
- 커널 모드 : 감독자 모드, 시스템 모드, 특권 모드라고도 불리며 운영체제가 동작하는 모드다. 운영체제를 위하여 실행되는 작업이다.
각각 모드를 구분하는 역할을 모드비트가 한다. 모드비트는 시스템이 사용자 코드[mode bit = 1]를 수행하는지 커널 코드[mode bit = 0]를 수행하는지를 구분하는 역할을 한다. 몇몇 명령어는 커널 모드에서만 실행되도록 특권을 가지도록 지정되어 있는데 인터럽트, 트랩과 시스템 호출 등에 의해 사용자 모드에서 커널 모드로 전환이 발생한다. 시스템 호출은 모드를 사용자에서 커널로 바꾸었다가 호출로부터 리턴되면 다시 사용자 모드로 복귀한다.
여기서 하드웨어에서 발생한 이벤트를 처리할 목적으로 cpu에 신호를 보내는 것이고, system call은 소프트웨어적으로 처리할 서비스를 cpu에 신호를 보내는 것이고 trap은 일반적으로 커널 모드로 전환해서 소프트웨어적으로 예외적인 조건을 처리하는 녀석이다.
'시스템 > 운영체제' 카테고리의 다른 글
입출력 서브시스템 (0) 2020.05.08 자원 관리 (0) 2020.05.08 멀티프로그래밍 및 멀티태스킹 (0) 2020.05.04 클러스터형 시스템(Clustered System) (0) 2020.05.04 대칭과 비대칭 멀티 프로세싱 (0) 2020.04.24