操作系统(Operating System)知识点复习——第四章 操作系统概述

Source

目录

0.前言

1.进程与线程

1.1 单线程与多线程的定义

1.2 进程与线程之间的区别和联系

2.线程的类型

2.1 User-Level Threads(ULT,用户级线程)

2.2 Kernel-Level Threads(KLT,内核级线程)

2.3 ULT与KLT之间的对比

2.4 Combined Approaches(混合方式)


0.前言

本系列文章旨在记录操作系统的知识点,可用于期末复习,笔者理解尚浅,文中不正之处静待批正。加粗高亮部分为重点。

1.进程与线程

资源分配与保护的单位:进程Process

调度与执行的单位:线程Thread

1.1 单线程与多线程的定义

单线程:一个进程中只有一个线程在执行的传统方法

多线程:操作系统支持在一个进程中执行多个线程的能力

1.2 进程与线程之间的区别和联系

线程=进程-共享资源

①线程自身拥有哪些资源?

PC、stack、局部变量、执行状态和TCB(每个线程拥有自己的PC和stack)

②多线程共享哪些资源?

全局变量、静态变量、文件、堆等(代码段和数据段)

③线程有哪些优点?

创建快、结束快、切换快(不需要切换页表)、通信快(不经过内核通信)

④线程的状态

线程只考虑ready、running、blocked没有挂起态和终止态。因此挂起进程会挂起所有线程,终止进程会终止所有线程

2.线程的类型

2.1 User-Level Threads(ULT,用户级线程)

线程管理由应用程序负责;内核意识不到线程的存在;用户能看到;线程的切换在用户态下完成;按进程调度(一个线程阻塞,则其余线程均会阻塞)

2.2 Kernel-Level Threads(KLT,内核级线程)

线程管理由操作系统内核负责;用户看不到;线程的调度、切换由内核负责,在核心态下完成;按线程调度

2.3 ULT与KLT之间的对比

①ULT的优势

切换开销小;调度策略可根据应用而不同;无需底层内核修改

②ULT的劣势

ULT按进程调度;线程不能分配到多核

③KLT的优势

多CPU执行仅阻塞单个线程

④KLT的劣势

线程的切换需要内核的模式切换

2.4 Combined Approaches(混合方式)

线程的创建/调度/同步均在用户空间完成,而内核级线程才是处理机调度的单位