티스토리 뷰
2023.02.17 - [운영체제] - #4 컴퓨터 부팅과정 & 인터럽트
#4 컴퓨터 부팅과정 & 인터럽트
● 컴퓨터 부팅과정 - 컴퓨터를 ON 했을 때 일어나는 과정을 알아보자 1. 컴퓨터의 전원을 누르면 ROM에 저장된 BIOS가 실행된다. 2. BIOS는 전원, CPU, 메모리, 키보드, 마우스, 하드디스크 등의 주요
radderveloper.tistory.com
- 위의 글을 먼저 읽어보자
● 도입(시분할 처리)
- 사용자가 프로그램을 실행시키면 프로그램이 메모리에 올라가면서 프로세스가 생성된다.
cf) 프로그램 : 하드디스크와 같은 저장 장치(HDD, SSD)에 저장된 명령문의 집합체
- 오늘날의 운영체제(OS)에는 동시에 수 많은 프로세스가 실행된다.
- 시분할 시스템을 사용하는 OS는 여러개의 프로세스를 돌아가면서 실행한다.
- CPU는 여러개의 프로세스를 동시에 실행하지 못 하며 한 순간에는 하나의 프로세스만 처리할 수 있다.
- 다만 처리 속도가 매우 빨라서 인간이 보기에는 여러개의 프로세스를 동시에 처리하는 것 처럼 보이는 것이다.
cf) 수 많은 프로세스가 실행 중이다.
● 프로세스 상태 with 시분할 처리
- 프로세스는 시분할 처리를 위한 5가지 상태를 가지고 있다.
1. 생성상태
2. 준비상태
3. 실행상태
4. 대기상태
5. 완료상태
1. 생성상태
- PCB를 생성하고 메모리에 프로그램 적재를 요청한 상태
- 메모리에 프로그램 적재를 승인받으면 준비상태로 넘어간다.(위 그림에서 승인 상태를 의미한다.)
2. 준비상태
- CPU를 사용하기 위해 기다리고 있는 상태
- 준비상태에 있는 프로세스는 CPU 스케줄러에 의해 CPU가 할당된다.(위 그림에서 스케줄러 선택을 의미한다.)
- 대부분의 프로세스는 준비상태에 있다고 보면 된다.
3. 실행상태
- 준비상태에 있는 프로세스가 CPU 스케줄러에 의해 CPU를 할당받아 실행되는 상태
- 실행상태에 있는 프로세스의 수 = CPU의 개수
ex) CPU가 1개라면 실행상태에 있는 프로세스도 최대 1개이다.
- 실행상태에 있는 프로세스라고 해서 CPU를 무한정 사용할 수 있는 것은 아니다. 부여된 시간만큼만 사용할 수 있다.
- 부여된 시간을 초과하면 CPU 스케줄러가 할당된 CPU를 강제로 뺏는다. 이때 프로세스는 다시 준비상태로 돌아간다.
(위 그림에서 인터럽트를 의미한다.)
4. 대기상태
- 프로세스가 입출력을 요청하면 입출력이 완료될 때 까지 기다리는 상태
Q. 대기상태는 어떻게 만들어졌을까?
A.
- CPU는 굉장히 빠른 작업 속도를 가지고 있지만 그에 반해 입출력 작업은 속도가 상당히 느린 작업이다.
- 따라서 특정 프로세스가 입출력 요청을 했을 때 해당 요청이 완료될때까지 CPU를 기다리게 하는 것은 매우 비효율적
- 그렇기에 입출력 요청을 한 프로세스는 대기상태로 두고 다른 프로세스에게 CPU를 할당한다.
(위 그림에서 입출력 작업을 의미한다.)
- 시간이 지난 후 입출력 작업이 완료되면 대기상태에 있던 프로세스에게 CPU 할당 기회를 준다.
(위 그림에서 입출력 작업 완료를 의미한다.)
- 대기상태가 있기 때문에 CPU가 별다른 정체 시간 없이 계속해서 프로세스들을 실행할 수 있다.
5. 완료상태
- 프로세스가 종료된 상태(위 그림에서 종료를 의미한다.)
- 프로세스가 사용했던 데이터를 메모리에서 제거하고 생성된 PCB도 제거한다.
'CS > 운영체제' 카테고리의 다른 글
#10 프로세스 생성과 종료 with fork, exec 함수 (0) | 2023.02.27 |
---|---|
#9 컨텍스트 스위칭(Context switching) (0) | 2023.02.26 |
#7 PCB(Process Control Block) - 프로세스 제어 블록 (0) | 2023.02.22 |
#6 유니프로그래밍, 멀티프로그래밍, 멀티프로세싱 (0) | 2023.02.21 |
#5 프로그램과 프로세스 (0) | 2023.02.18 |
- Total
- Today
- Yesterday
- SpringBoot
- java
- 메모리
- 코테
- node.js
- git
- 빅데이터
- MySQL
- MongoDB
- 코딩테스트
- DART
- 빅데이터 분석기사
- 프로그래머스
- 운영체제
- 프로세스
- nosql
- OS
- API
- Advanced Stream
- SQL
- Phaser3
- db
- Spring Boot
- Phaser
- spring
- 자료구조
- jpa
- Java8
- 알고리즘
- Stream
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |