操作系统知识点---第 2 章 进程与线程

操作系统目录:
第 1 章 计算机系统概述
进程管理(2~4)
第 2 章 进程与线程
第 3 章 处理机调度
第 4 章 进程同步与死锁
第 5 章 内存管理
第 6 章 文件管理
第 7 章 I/O管理

2.1.1 进程的定义、组成和组织方式、特征

早期计算机:只支持单道程序

  • 内存:
    程序段:程序的代码
    数据段:程序运行时处理的数据(变量…)

多道程序技术:内存同时存放多道程序
为了方便操作系统管理,引入了进程、进程实体。

1. 进程的定义

进程是进程实体的运行过程,是系统进行资源配和调度的一个独立单位

2. 进程的组成:PCB、程序段、数据段

操作系统所需的数据都在PCB中
程序段和数据段:存放程序本身的运行所需的数据

3. 进程的组织

进程的组织方式:链接方式、索引方式

  • 链接方式:
    · 执行指针:指向当前处于运行态的进程
    · 就绪队列指针:指向当前处于就绪态的进程,通常会把优先级高的进程放在队头
    · 阻塞队列指针:指向当前处于阻塞态的进程

4. 进程的特征

动态性、并发性、独立性、异步性、结构性

2.1.2 进程的状态与转换

1. 进程的状态

进程是程序的一次执行
三种基本状态:运行态、就绪态、阻塞态
另外两种状态:创建态、终止态

2. 进程状态间的转换

就绪态–>运行态
运行态–>就绪态
运行态–>阻塞态
阻塞态–>就绪态
——————————————
创建态—>就绪态;运行态—>终止态

2.1.3 进程控制

1. 什么是进程控制

实现进程状态之间的转换

2. 如何实现进程控制

修改PCB内容和相应队列

  • 用原语实现进程控制
    进程的创建:创建原语(创建态—>就绪态)
    进程的终止:撤销原语(就绪态/阻塞态/运行态—>终止态)
    进程的阻塞和唤醒:阻塞原语(运行态—>阻塞态)唤醒原语(阻塞态—>就绪态)
    进程的切换:切换原语

2.1.4 进程通信

什么是进程通信

进程通信就是指进程之间的信息交换。
各进程拥有的内存地址空间相互独立,一个进程不能直接访问另一个。

1. 共享存储:

互斥的
分为:基于数据结构的共享(低级)、基于存储区的共享(高级)

2. 管道通信:

半双工通信,如果要实现双向通信,需要设置两个管道

3. 消息传递:

进程间的数据交换以格式化的消息为单位
操作系统的两个原语:发送消息/接收消息两个原语进行数据交换。
消息传递方式:直接通信方式、间接通信方式

2.1.5 线程概念和多线程模型

为什么要引入线程

每个进程可以包含多个线程
线程是一个基本的CPU执行单元,也是程序执行流的最小单元。

带来的变化

  1. 资源分配和调度:
    · 传统,进程是资源分配、调度的基本单位。
    · 引入线程后,进程是资源分配的基本单位,线程是调度的基本单位。
  2. 并发性
    · 传统,只能进程间并发。
    · 引入线程后,进程之间可以并发,进程内的各线程之间也可以并发。
  3. 系统开销
    · 传统,进程间并发,需要切换进程的运行环境,系统开销大。
    · 线程间并发,不需要切换进程环境,系统开销小。

线程的属性
· 线程是处理机调度的单位。
· 多CPU计算机中,各个线程可占用不同的CPU。
· 每个线程都有一个线程ID、线程控制块TCB
· 线程也有就绪、阻塞、运行三种基本状态
· 线程几乎不同系统资源,系统资源几乎都在进程那里
· 同一进程中线程切换,不会引起进程切换。但是…,会…
· 切换线程,系统开销小。切换进程,系统开销大。

线程的实现方式

用户级线程:所有的线程管理工作都由应用程序负责。无需操作系统干预。
内核级线程:线程的管理工作由操作系统内核完成。
二者组合:将n个用户级线程映射到m个内核级线程上。
内核级线程才是处理机分配的单位。

多线程模型

多对一模型:
一对一模型:并发能力很强,系统开销大。
多对多模型:n个用户级线程映射到m个内核级线程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值