此篇为操作系统的学习、回忆篇:

一、进程

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

操作系统回忆录:进程、线程、资源调度相关推荐

  1. 4.19 python 网络编程和操作系统部分(TCP/UDP/操作系统概念/进程/线程/协程) 学习笔记

    文章目录 1 网络编程概念 1)基本概念 2)应用-最简单的网络通信 2 TCP协议和UDP协议进阶(网络编程) 1)TCP协议和UDP协议基于socket模块实现 2)粘包现象 3)文件上传和下载代 ...

  2. 操作系统总结--进程,线程

    进程 进程(进程实体)由PCB()Process Control Block).程序段.数据段三 部分组成. 对用户而言,我们能看到一个个PID,而对操作系统而言,底层需要处理的是一个个PCB. PC ...

  3. 【操作系统】进程/线程模型

    1. 进程的基本概念 1.1 多道程序设计(Multi-Programming) 首先从多道程序设计开始,以便更好的理解进程的必要性. 在早期没有多道程序设计之前,操作系统只有一个物理程序计数器,这样 ...

  4. 操作系统:进程与线程大解析

    一文就懂进程与线程 一.进程/线程相关概念 进程 中断 并发与并行 并发 并行 线程 线程分类 多进程和多线程 上下文 进程上下文 进程上下文切换的场景 线程上下文 扩展:协程 线程与协程的区别: 协 ...

  5. 【操作系统】进程 与 线程 详解(以及二者的比较)

    目录 1.CPU基本组成原理 2. 进程(process) 1.1 操作系统管理进程的方式 1.2 PCB中的属性 1.3 实现进程调度相关属性 1.3.1 状态 1.3.2 优先级 1.3.3 记账 ...

  6. Linux 操作系统原理 — 进程与线程管理

    目录 文章目录 目录 前言 进程与线程 内核线程,用户线程与轻量级进程 内核线程 轻量级进程 用户线程 轻量级进程与用户线程的区别 用户线程与轻量级进程的混合模式 用户线程和内核线程的区别 线程的实现 ...

  7. 『操作系统』 进程的描述与控制 Part4 线程

    文章目录 2.8 线程及其实现 1.线程的概念 练习题 2.线程的实现及控制 例题 练习题 2.8 线程及其实现 1.线程的基本概念 2.线程的实现及控制 引入进程 的目的: 使多个程序能并发执行,提 ...

  8. 操作系统(二): 进程与线程

    操作系统(二): 进程与线程 本章解读 进程管理是操作系统重点中的重点,涵盖了操作系统中大部分的知识和考点.其主要包括四部分:进程与线程,处理器调度,同步与互斥,死锁.所以我准备分四个部分来解释这四个 ...

  9. 操作系统之进程和线程

    操作系统也是软件,区别于应用软件的最大特点具有进程管理.内存管理等功能. 一 进程 1.1 什么是进程(process) 进程指的就是正在运行中的程序.进程也是有生命周期,当程序运行结束,则进程结束. ...

  10. 【操作系统/OS笔记10】进程/线程的调度原则、调度算法、实时调度、多处理器调度、优先级反转

    本次笔记内容: 8.1 背景 8.2 调度原则 8.3 调度算法1 8.4 调度算法2 8.5 实时调度 8.6 多处理调度与优先级反转 文章目录 CPU调度背景 上下文切换 CPU调度 在进程/线程 ...

最新文章

  1. 调侃吴恩达,Diss特斯拉,吐槽OpenAI…《AI寒冬将至》作者点评2019“AI小丑秀”...
  2. MarkDown 流程图 ... ...
  3. linux-xargs
  4. 【Flutter】Dart 面向对象 ( mixins 特性 )
  5. jmeter mysql 连接复用_JMeter 连接MySQL
  6. virtualenvwrapper 的安装和使用
  7. java 正则 最后一个字符_正则表达式怎么匹配字符串中最后一串数字?
  8. 基于《悉尼协议》框架下Java课程案例教学研究
  9. 浪潮信息边缘服务器m5多少钱,浪潮边缘计算服务器NE5260M5发布!最高性能可达每秒70万亿次...
  10. 计算机rank函数怎么用积分排名,excelrank函数积分排名
  11. java如何解析word大纲_java解析word文件
  12. 玩转Python大数据分析 《Python for Data Analysis》的读书笔记-第08页
  13. 2019-07-10
  14. git拉取远程分支到本地分支或者创建本地新分支
  15. CSS3图片动画展示----心跳
  16. python3连接MSSQL数据库 中文乱码怎么解决?
  17. 内容管理项目小结 成功案例-公司官网,游戏官网
  18. 比较x^y和y^x的大小
  19. jQuery倒计时插件
  20. 认识kata-containers

热门文章

  1. REST API URI 设计的七准则
  2. SecureFX连接Linux后文件夹中文乱码问题解决
  3. iOS 代理设计模式
  4. jvm诊断与优化(3)
  5. Dev控件使用 - 皮肤
  6. 祝师傅新婚快乐 :-)
  7. Service和Thread的关系
  8. Eclipse下搭建Hadoop开发环境,并运行第一个实例
  9. “斐波那契数列”的两种算法
  10. Android 实现简单的插件化模块化