操作系统回忆录:进程、线程、资源调度
此篇为操作系统的学习、回忆篇:
一、进程
1、意义:只是一些资源的集合。
2、进程间通讯的方法:共享存储系统、消息传递系统、管道:以文件系统为基础。
3、进程间同步的策略:原子操作、信号量机制、自旋锁、管程、会合、分布式系统。
二、线程
1、cpu和内存真正的使用者。
2、线程同步的方法:信号量、临界区、互斥量、事件(windows编程)。
3、线程的状态与变换:
就绪:除了CPU的时间片,其他资源都已经准备好了。万事俱备,只欠“cpu”了。
阻塞:如I/O操作,会引起线程阻塞。即运行的好好的,突然有“人”来了,人往往比较慢,cpu只好先把你阻塞了,如果“人离开了”(I/O操作完成),会计入 就绪状态。
挂起:我的理解是,人为的或者外部因素,使得线程退出竞争cpu,但并不释放所占资源,进入睡眠状态,需要唤醒。
运行:运行得到cpu的线程。
这4个是线程最基本的状态,还可以进一步细分的。
4、死锁产生的原因及解决办法:
(1) 因为系统资源不足。
(2) 进程运行推进的顺序不合适。
(3) 资源分配不当等。
产生死锁的四个必要条件:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之
一不满足,就不会发生死锁。
解决办法:
1.忽略该问题。例如鸵鸟算法,该算法可以应用在极少发生死锁的的情况下。
2.检测死锁并且恢复。
3.仔细地对资源进行动态分配,以避免死锁。
4.通过破除死锁四个必要条件之一,来防止死锁产生
转载于:https://www.cnblogs.com/jamesmile/archive/2010/03/11/1683826.html
操作系统回忆录:进程、线程、资源调度相关推荐
- 4.19 python 网络编程和操作系统部分(TCP/UDP/操作系统概念/进程/线程/协程) 学习笔记
文章目录 1 网络编程概念 1)基本概念 2)应用-最简单的网络通信 2 TCP协议和UDP协议进阶(网络编程) 1)TCP协议和UDP协议基于socket模块实现 2)粘包现象 3)文件上传和下载代 ...
- 操作系统总结--进程,线程
进程 进程(进程实体)由PCB()Process Control Block).程序段.数据段三 部分组成. 对用户而言,我们能看到一个个PID,而对操作系统而言,底层需要处理的是一个个PCB. PC ...
- 【操作系统】进程/线程模型
1. 进程的基本概念 1.1 多道程序设计(Multi-Programming) 首先从多道程序设计开始,以便更好的理解进程的必要性. 在早期没有多道程序设计之前,操作系统只有一个物理程序计数器,这样 ...
- 操作系统:进程与线程大解析
一文就懂进程与线程 一.进程/线程相关概念 进程 中断 并发与并行 并发 并行 线程 线程分类 多进程和多线程 上下文 进程上下文 进程上下文切换的场景 线程上下文 扩展:协程 线程与协程的区别: 协 ...
- 【操作系统】进程 与 线程 详解(以及二者的比较)
目录 1.CPU基本组成原理 2. 进程(process) 1.1 操作系统管理进程的方式 1.2 PCB中的属性 1.3 实现进程调度相关属性 1.3.1 状态 1.3.2 优先级 1.3.3 记账 ...
- Linux 操作系统原理 — 进程与线程管理
目录 文章目录 目录 前言 进程与线程 内核线程,用户线程与轻量级进程 内核线程 轻量级进程 用户线程 轻量级进程与用户线程的区别 用户线程与轻量级进程的混合模式 用户线程和内核线程的区别 线程的实现 ...
- 『操作系统』 进程的描述与控制 Part4 线程
文章目录 2.8 线程及其实现 1.线程的概念 练习题 2.线程的实现及控制 例题 练习题 2.8 线程及其实现 1.线程的基本概念 2.线程的实现及控制 引入进程 的目的: 使多个程序能并发执行,提 ...
- 操作系统(二): 进程与线程
操作系统(二): 进程与线程 本章解读 进程管理是操作系统重点中的重点,涵盖了操作系统中大部分的知识和考点.其主要包括四部分:进程与线程,处理器调度,同步与互斥,死锁.所以我准备分四个部分来解释这四个 ...
- 操作系统之进程和线程
操作系统也是软件,区别于应用软件的最大特点具有进程管理.内存管理等功能. 一 进程 1.1 什么是进程(process) 进程指的就是正在运行中的程序.进程也是有生命周期,当程序运行结束,则进程结束. ...
- 【操作系统/OS笔记10】进程/线程的调度原则、调度算法、实时调度、多处理器调度、优先级反转
本次笔记内容: 8.1 背景 8.2 调度原则 8.3 调度算法1 8.4 调度算法2 8.5 实时调度 8.6 多处理调度与优先级反转 文章目录 CPU调度背景 上下文切换 CPU调度 在进程/线程 ...
最新文章
- 调侃吴恩达,Diss特斯拉,吐槽OpenAI…《AI寒冬将至》作者点评2019“AI小丑秀”...
- MarkDown 流程图 ... ...
- linux-xargs
- 【Flutter】Dart 面向对象 ( mixins 特性 )
- jmeter mysql 连接复用_JMeter 连接MySQL
- virtualenvwrapper 的安装和使用
- java 正则 最后一个字符_正则表达式怎么匹配字符串中最后一串数字?
- 基于《悉尼协议》框架下Java课程案例教学研究
- 浪潮信息边缘服务器m5多少钱,浪潮边缘计算服务器NE5260M5发布!最高性能可达每秒70万亿次...
- 计算机rank函数怎么用积分排名,excelrank函数积分排名
- java如何解析word大纲_java解析word文件
- 玩转Python大数据分析 《Python for Data Analysis》的读书笔记-第08页
- 2019-07-10
- git拉取远程分支到本地分支或者创建本地新分支
- CSS3图片动画展示----心跳
- python3连接MSSQL数据库 中文乱码怎么解决?
- 内容管理项目小结 成功案例-公司官网,游戏官网
- 比较x^y和y^x的大小
- jQuery倒计时插件
- 认识kata-containers