일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 다익스트라
- react #리액트 #동빈나 #나동빈 #유튜브강의
- 파이썬 #알고리즘 #코딩테스트 #프로그래머스
- DFS
- 알고리즘
- 코딩테스트
- 투포인터
- java #자바 #동빈나
- css #웹 #생활코딩
- react #리액트 #동빈나
- dp
- 프로그래머스 #파이썬 #알고리즘 #코딩테스트
- 백준 #알고리즘 #파이썬 #코딩테스트
- Dijkstra
- 파이썬 #백준 #알고리즘 #코딩테스트
- 백트랙킹
- css #생활코딩 #웹
- java #자바
- 다이나믹프로그래밍
- java #자바 #나동빈
- 백준
- java #자바 #생활코딩
- 재귀
- BFS
- 백준 #파이썬 #알고리즘 #코딩테스트
- 프로그래머스 #파이썬 #코딩테스트 #알고리즘
- PYTHON
- 프로그래머스
- 자바 #java
- 파이썬
Archives
- Today
- Total
커리까지
[운영체제] 6. Process2 본문
728x90
SMALL
출처 : http://www.kocw.net/home/cview.do?lid=29d9a718cff884c3
동기식 입출력과 비동기식 입출력
- 동기식 입출력
- 프로세스가 입출력을 요청
- 좀 오래 걸리면서 수행됨
- 입출력 프로세스가 기다려야 하면 동기식
- i/o가 완료될 때 까지 cpu를 가지면서 기다림
- 비동기식 입출력
- 입출력 프로세스가 진행되는 인스트럭션을 실행하면 비동기식 입출력
- 어차피 일을 못할 거 일을 할 수 있는 거에 cpu를 주는 것
Thread
- "A thread (or lightweight process) is a basic unit CPU utilization"
- Thread의 구성
- progran counter
- register set
- stack space
- Thread가 동료 thread와 공유하는 부분(=task)
- code section
- data section
- OS resources
- 전동적인 개념의 heavyweight process는 하나의 thread를 가지고 있는 task로 볼 수 있음
동일한 일을 하는 프로세스를 만들면 메모리가 낭비됨
같은 일을 하는 프로세스를 많이 띄우고 싶으면 주소 공간은 하나를 만들고 프로그램 카운터(cpu 단위)만 여러개 두는 것
각 CPU 수행마다 코드 어느 부분을 실행하는지 기억
CPU 수행 단위가 여러개면 STACK도 여러개 둬야함
그래서 최대한 공유
- 프로그램 카운터나 레지스터 , stack은 따로 가짐
다중 스레드로 구성된 태스크 구조에서는 하나의 서버 스레드가 blocked(Waiting) 상태인 동안에도 동일한 태스크 내의 다른 스레드가 실행(running)되어 빠른 처리 가능
동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리율(throughput)과 성능 향상을 얻을 수 있음
스레드를 사용하면 병렬성을 높일 수 있음
- cpu가 여러개 달린 pc에서 가능
- 바이너리는 공유하고 cpu에 관련된 것들은 각각 가지고 있는다.
Threads의 장점
- Responsiveness(응답성)
- 사용자 입장에서는 빠름
- 하나의 쓰레드가 멀리 있는 서버에서 그림이나 html파일을 가져오는 동안 이미지 파일을 다시 요청하는 동안 이 쓰레드만 블럭되고 텍스트는 그대로 디스플레이 됨
- i/o작업을 던져놓고 먼저 되는 것들을 보여줌
- Resource Sharing(자원공유)
- 코드, 데이터, 프로세스의 자원을 공유
- Economy
- 좀 더 빠름
- 프로세스에 하나의 쓰레드를 얹는 것은 오베헤드가 크지 않음
- Utilization of MP Architectures
- cpu가 여러개 있는 환경에서 적용
Threads 구현
- 커널에서 지원
- threads가 여러개인지 커널이 알고 있어서 스케줄링하듯 넘겨줌
- user에서 지원
- 라이브러리로 지원
- 유저프로그램이 커널이 모르고 있어서 프로그램 자신이 여러개의 threads를 구현
- real-time threads
728x90
LIST
'KOCW' 카테고리의 다른 글
[운영체제] 9. Process Management 2 (0) | 2021.06.18 |
---|---|
[운영체제] 8. Process Management 1 (0) | 2021.06.16 |
[운영체제] 5. Process1 (0) | 2021.06.09 |
[운영체제] 4. System Structure & Program Execution 2 (0) | 2021.06.02 |
[운영체제] 3. System Structure & Program Execution 1 (0) | 2021.05.27 |
Comments