티스토리 뷰
● 컴퓨터 부팅과정
- 컴퓨터를 ON 했을 때 일어나는 과정을 알아보자
1. 컴퓨터의 전원을 누르면 ROM에 저장된 BIOS가 실행된다.
2. BIOS는 전원, CPU, 메모리, 키보드, 마우스, 하드디스크 등의 주요 하드웨어에 이상이 없는지 체크한다.
3-1. 만약 주요 장치에 이상이 있다면 오류음이 나면서 부팅이 이루어지지 않는다.
3-2. 이상이 없다면 하드디스크에 있는 마스터 부트 레코드에 저장된 부트로더를 메모리로 가져가서 실행한다.
4. 만약 컴퓨터에 운영체제(OS)가 2개 이상 있다면(ex. window, Linux) 어떤 운영체제를 실행할지 선택하는 화면이 나온다.
5. 운영체제를 선택했거나 운영체제가 하나면 해당 운영체제를 메모리로 불러오고 모니터에 바탕 화면이 나오게 된다.
6. 이후에 실행되는 응용 프로그램은 모두 메모리에 올라와서 OS가 관리한다.
● 인터럽트
- CPU가 입출력 장치에 데이터를 읽거나 쓰려고 하는 상황을 가정해보자
- CPU는 입출력 작업이 들어오면 입출력 관리자에게 입출력 명령을 내린다.
- 이때 CPU 입장에서는 입출력 명령이 언제 완료될지 알 수 없기 때문에 이를 주기적으로 입출력 관리자에게 계속 확인해야 하는데 이러한 방식을 Polling(폴링) 방식이라고 한다.
https://etloveguitar.tistory.com/61
폴링(polling)이란? (comet)
폴링은 리얼타임 웹을 위한 기법으로, 일정한 주기(특정한 시간)을 가지고 서버와 응답을 주고 받는 방식을 말한다. 이렇게 서버와 응답을 주고 받는 이유는 웹이 태생 자체부터 실시간을 위해
etloveguitar.tistory.com
https://jokergt.tistory.com/65
폴링(Polling)이란?
실시간 웹(리얼타임)을 만들고 싶다. 하지만 그에 앞서 알아둬야 할 것이 있으니... 실시간 웹 구현의 한계성!! 웹은 태생 자체부터 실시간을 위해 필수적인 지속되는 연결(persistent connection)을 가
jokergt.tistory.com
- Polling 방식은 CPU가 주기적으로 작업 상황을 확인해야 하므로 성능이 좋지 않다는 단점이 있다.
- 인터럽트는 이러한 Polling 방식의 단점을 해결한 방식이다.
- interrupt는 사전적으로 방해를 의미하는데 컴퓨터에서는 이보다 우선순위가 더 높은 작업을 우선적으로 처리한다라는 의미에 더 가깝다.
ex)
- 키보드, 마우스를 통한 입출력은 현재 수행중인 작업보다 우선적으로 처리해야 하기 때문에 인터럽트가 필요하다.
- 이런 처리가 없다면 마우스를 클릭했는데 한참 있다가 반응하는 사태가 벌어질 수 있다.
- 인터럽트 작동 방식은 간단하게 아래와 같다.
1. CPU가 입출력 관리자에게 입출력 명령을 내린 후 CPU는 다른 작업을 계속 진행한다.
2. 입출력 관리자는 입출력 작업이 완료되면 CPU에게 신호를 주고 CPU는 해당 신호를 받아 인터럽트 서비스 루틴(ISR)을 실행시켜 작업을 완료한다.
- ISR은 특정 인터럽트가 들어오면 해당 인터럽트를 처리하는 함수이다.
- Interrupt Service Routine은 인터럽트 핸들러 라고도 한다.
- 실제 인터럽트를 처리하는 루틴으로 실행 중이던 레지스터와 PC를 저장하여 실행중이던 CPU 상태를 보존하고 인터럽트 처리가 끝나면 원래 상태로 복귀한다.
- 운영체제 코드에는 각종 인터럽트 별로 처리할 내용이 이미 프로그램 되어 있다.
- 인터럽트는 비동기적으로 동작하기 때문에 성능에 이점이있다.
https://kosaf04pyh.tistory.com/197
[운영체제] 인터럽트
인터럽트 대부분의 시스템에서 하나의 CPU를 두고 여러 프로세스들이 경쟁을 하면서 자신의 작업을 수행합니다. 여기서 각 프로세스는 정해진 시간만큼 CPU를 사용할 수 있으며 이 시간이 지나면
kosaf04pyh.tistory.com
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=scw0531&logNo=220650635893
[인터럽트] 에 대하여
인터럽트란 하드웨어와 소프트웨어에서 상당히 중요하고 많이 사용되어지는 기법 중 하나이다. 인터럽트라...
blog.naver.com
https://velog.io/@adam2/%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8
[OS기초] 인터럽트 제대로 이해하기
주변장치와 입출력 장치는 CPU나 메모리와 달리 인터럽트라는 메커니즘을 통해 관리된다. 그래서 인터럽트, 왜 하는거요? 그 이유는 입출력 연산이 CPU 명령 수행속도보다 현저히 느리기 때문이
velog.io
- 인터럽트에는 하드웨어 방식과 소프트웨어 방식 2가지가 있다.
1. 하드웨어 인터럽트
- 하드웨어가 발생시키는 인터럽트로서 입출력 등과 같은 인터럽트가 있다.
2. 소프트웨어 인터럽트
- 사용자 프로그램에서 발생한 인터럽트로서 유효하지 않은 메모리에 접근하거나 0으로 나누는 명령어 등이 있다.
'CS > 운영체제' 카테고리의 다른 글
#6 유니프로그래밍, 멀티프로그래밍, 멀티프로세싱 (0) | 2023.02.21 |
---|---|
#5 프로그램과 프로세스 (0) | 2023.02.18 |
#3 컴퓨터 하드웨어와 구조(feat 폰 노이만 구조) (0) | 2023.02.12 |
#2 운영체제 구조 with kernel (0) | 2023.02.09 |
#1 운영체제 개요 (0) | 2023.02.08 |
- Total
- Today
- Yesterday
- DART
- SpringBoot
- Phaser3
- 코딩테스트
- Stream
- Spring Boot
- 운영체제
- spring
- git
- MongoDB
- java
- Advanced Stream
- SQL
- Phaser
- 프로세스
- Java8
- 자료구조
- 빅데이터
- db
- jpa
- node.js
- 코테
- nosql
- MySQL
- 빅데이터 분석기사
- 프로그래머스
- OS
- 알고리즘
- API
- 메모리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |