250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Migration
- typescript
- roadhog
- 제어프로그램
- 리액트
- 프로덕트관리
- react
- 운영체제
- react코어
- 데이터베이스
- 블록체인용어
- 타입스크립트
- 자바스크립트
- 프론트엔드
- 프로덕트구조
- javascript
- sql
- 코드서울
- typescirpt
- 감시프로그램
- webpack
- 처리프로그램
- 서비스프로그램
- 마이그레이션
- Oracle
- 선점 스케줄링
- dbms
- Database
- 오라클
- useCallback
Archives
- Today
- Total
Develop+
스레드의 종류와 정의/분류 본문
728x90
스레드(thread)
실행중인 프로그램
프로세스 내에서의 작업 단위로 시스템으로부터 여러 자원을 할당 받아 실행하는 단위이다.
순차적으로 실행되는 명령어들은 하나의 실로 꿸 수 있기 때문에 실(thread)이라고 표현한다.
종류
단일 스레드 프로세스
-
코드, 데이터, 파일은 같이 쓰지만 한개의 레지스터와 스텍을 가진다.
다중 스레드 프로세스
-
단일 스레드와 같이 코드 데이터 파일은 같이 쓰지만 여러 스레드가 각각 레지스터와 스텍을 가지고있다.
정의
-
프로세스의 일부 특성을 가진 경량(light weight) 프로세스이다.
-
스레드 기반 시스템에서는 스레드가 독립적인 스케줄링의 최소 단위로 프로세스의 역할을 담당
-
운영체제 및 하드웨어 성능과 처리율을 향상시킬 수 있음
-
응답시간을 단축시킬 수 있음
-
프로세스들 간의 통신이 향상 됨
분류
사용자 수준의 스레드
-
사용자가 만든 라이브러리를 사용해 스레드를 이용
-
속도는 빠르지만 구현의 어려움이 있음
커널 수준의 스레드
-
운영제제의 커널에 의해 스레드를 운용한다.
-
구현이 쉽지만 속도가 느림
문맥교환(context switching)
사용중인 CPU를 사용하도록 하기 위해 프로세스의 상태 정보를 보관하고, 새로운 프로세스의 상태 정보를 적재한 후 CPU 를 할당하여 실행되도록 하는 작업.
프로세스 A가 사용중이던 cpu를 프로세스B가 급하게 사용해야 한다면 A의 정보를 가진 PCB를 RAM에 저장하고 B의 PCB를 cpu에 적재하여 B프로세스를 실행.
컨텍스트 스윗칭(문맥 교환)은 빈번하게 일어나게 되면 오버헤드가 크게 발생하여 좋지 않다.
728x90
'운영체제' 카테고리의 다른 글
선점 스케줄링/비선점 스케줄링 (0) | 2021.01.04 |
---|---|
스케줄링의 목적과 스케줄링 기법 정리 (0) | 2021.01.03 |
프로세스의 인터럽트/처리순서 (0) | 2021.01.03 |
프로세스/PCB/스풀링(spooling) 정리 (0) | 2021.01.03 |
매크로와 매크로 프로세서 처리과정 정리 (0) | 2020.12.31 |