操作系统教程OS 孙忠秀操作系统笔记

5、进程/线程模型2(操作系统笔记)

2016-12-15  本文已影响93人  yjaal

五、深入理解进程概念

5.1 进程的分类

5.2 进程层次结构

5.3 进程和程序的区别

5.4 进程的地址空间

操作系统为每个进程分配了一个地址空间。这里我们看一个例子:


1

这个程序我们从命令行中输入数据,比如:

myval 7
myval 8

此时我们会发现虽然进程不同,但是打印出来的地址确实一样的。这里我们从进程地址空间来分析:

2
说明:上面的两个进程都有这样一个地址空间,也就是说这两个进程是在不同的地址空间上的相同的位置,所以虽然地址是一样的,但是实际上在实际内存中的地址是不一样的。

5.5 进程映像

对进程执行活动全过程的静态描述(快照)。由进程地址空间内容、硬件寄存器内容及与该进程相关的内核数据结构、内核栈组成

5.6 上下文切换

六、线程

6.1 线程的引入

引入线程有三个理由:

6.1.1 应用的需要

我们看一个例子,一个web服务器的工作方式:

可以看到每次从磁盘读取的时候进程都是暂停的,这样会导致性能低下。那如何提高服务器的工作效率?通常情况下是使用网页缓存的方式解决。如果没有线程的情况下的两种解决方案:

多线程的解决方式

1
说明:这是一个多线程的web服务器的工作方式,首先读取客户端的请求,之后由分派线程将各个任务分派给工作线程,同样这里还是采用了网页缓存。于是我们可以看到一个web服务器的实现有三种方式:
2

6.1.2 开销的考虑

3

6.1.3 性能的考虑

如果有多个处理器的话,一个进程就会有多个线程同时在执行了,这样可以极大的提高运行 性能。

6.2 线程的基本概念

4

线程的属性

6.3 线程机制的实现

一般有三种实现机制:

6.3.1 用户级线程

5
说明:可以看到线程是有运行时系统管理的,在内核中只有进程表。典型例子就是UNIX:
POSIX线程库--PTHREAD
6

小结:
有点:

缺点:

6.3.2 核心级线程

7

6.3.3 混合模型

上一篇 下一篇

猜你喜欢

热点阅读