-
[운영체제] 5. 운영체제의 운용기법 변천사운영체제 2022. 1. 25. 12:41
운영체제의 운용기법 발전으로 인해 여러 프로그램을 동시에, 빠른 속도로 돌릴 수 있게 되었다.
사실 여러 프로그램이 동시에 돌아가지는 않는다.
기술이 좋아져서 그런 것처럼 보이는것이고, 실제로는 한 프로그램씩 실행한다.
이제 운용기법이 어떤 과정을 거쳐서 동시에 돌리는것처럼 보이는 지경에 도달했는지 알아보겠다.그 전에 알아야 할 규칙 :
프로그램은 CPU 처리 후 I/O(입출력장치) 까지 처리해야 '수행을 완료했다'고 할 수 있다.
1. 일괄 처리 시스템 (1950년대)
특징 : - 한 프로그램이 '수행을 완료'하면 (CPU, I/O 모두 처리) 그 다음 프로그램이 수행된다.
- (한개의 프로그램씩 아주 정직하게 실행되는것처럼 느껴진다.)
ex) 앱A: CPU 수행 , 앱B: 대기 -> 앱A: I/O 수행 , 앱B: 대기 (CPU 사용X) -> 앱A: 완료, 앱B: CPU 수행
단점 : I/O가 수행을 끝마칠때까지 CPU는 아무일도 하지 않는다. 따라서 CPU낭비가 심하다.2. 다중 프로그래밍 시스템 (1960년대)
특징 : - 한 프로그램이 CPU를 수행하고 I/O으로 넘어가면 다음 프로그램이 기다리지 않고 바로 CPU를 수행한다.
- (두개의 프로그램이 동시에 실행되는것처럼 느껴진다.)
ex) 앱A: CPU 수행 , 앱B: 대기 -> 앱A: I/O수행, 앱B: CPU 수행
단점 : 프로그램의 상황에 따라 무기한으로 대기할 수도 있다.3. 시분할 시스템 (1960년대)
특징 : - CPU가 하나의 프로그램을 수행하는 시간을 제한하여 무기한으로 대기하는 폐해를 막는다.
- (여러 프로그램이 동시에 실행되는것처럼 느껴진다.)
ex) 앱A: CPU 일정시간 수행, 앱B: 대기 -> 앱A: CPU수행시간 제한되어 대기, 앱B: CPU 일정시간 수행
단점 : 우선순위가 높은 프로그램이 대기중이라도 순서대로 실행된다.4. 인터럽트 시스템 (현재)
특징 : - 인터럽트를 통해 우선순위가 높은 프로그램을 먼저 실행한다.
인터럽트란? : 우선순위가 높은 프로그램이 수행을 원할 경우 즉시 CPU에게 전기신호를 보내는 것.
이로 인해 CPU는 하던 일을 중지하고 해당 프로그램을 수행하게 된다.
ex) 앱A: CPU 수행 -> 마우스 이동으로 인한 인터럽트 발생 -> 앱A: 일시중지, 마우스: CPU 수행
인터럽트의 종류 : - 하드웨어 인터럽트 : 마우스, 키보드 등
- 소프트웨어 인터럽트 : 파일 불러오기 등
- 내부 인터럽트: 예외 상황이 발생한 경우(프로그램을 강제로 종료하게 된다)
인터럽트의 실제 동작과정 :1) 인터럽트가 발생하여 CPU에게 전기신호를 보낸다.
2) CPU는 하던 일을 중단하고 OS 내부에 있는 인터럽트를 처리하는 코드로 점프한다.
3~4) 코드를 실행해 Disk에 있는 앱을 RAM에 올려 실행한다.
5) 수행이 끝나면 원래 위치로 돌아간다.
참고한 페이지
https://velog.io/@codemcd/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9COS-2.-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EC%97%AD%EC%82%AC'운영체제' 카테고리의 다른 글
[OS]입출력버스(I/O BUS), 클럭 신호(Clock Signal)에 대하여 (0) 2025.03.08 [운영체제] 6. 이중모드와 보호 (0) 2022.01.26 [운영체제] 4. 운영체제(OS)의 구조 (0) 2022.01.25 [운영체제] 3. 부팅 (0) 2022.01.24 [운영체제] 1. 운영체제(OS)란? (0) 2022.01.24