当前位置:网站首页>进程与线程
进程与线程
2022-07-29 05:24:00 【阿童沐游】
多任务:
单核Vs多核
并发:
并行:
进程:运行中的程序
特点:
优缺:
进程状态:
进程的控制结构
pcb
包含了进程什么信息:
如何组织信息:
进程的控制
创建进程:
终止进程:
阻塞进程:
唤醒进程:
回收进程资源
为什么要回收资源:
僵尸与孤儿:
进程的上下文切换
切换内容:
切换的场景:
进程的调度
调度程序:
阻塞运行态进程后,选择一个进程运行,称为调度程序
调度时机:
调度原则:
原则一:不然cpu空闲
原则二:提高吞吐率
原则三:避免周转时间长
原则四:进程等待时间
原则五:响应时间
调度算法
先来先服务:
短时间优先:
高响应比优先:
时间片轮转:
高优先级优先:
多级反馈:
进程的通信
管道,消息队列,共享内存,信号量,信号,socket。
进程的通信
管道
如何创建,原理:
缺点:
消息队列
原理:
缺点:
存在用户态到内核态的数据拷贝
共享内存
原理:
解决了:
缺点:
信号量
原理:
解决什么
解决过程
信号
作用:
用法:
socket
函数原型
TCP与UDP在socket的过程:(引出网络编程)
线程:是进程中执行的一条流程
特点:
优缺:
有了进程为什么用线程:
线程的共享资源问题
线程的同步
线程的创建
函数原型:
线程的状态
进程与线程的比较
单位,资源,状态,时间
为什么线程开销小
时间:
空间:
cpu的上下文切换
作用:
进程的上下文切换
切换内容:
切换的场景:
线程的上下文切换
同一进程?
线程的三种实现方式
用户线程
是什么:
优缺点:
内核线程
是什么:
优缺点:
轻量级线程是什么。
线程同步的具体实现
为什么会发生竞争?
例如:
互斥的概念
为什么有互斥,原因?
同步概念
在关键点相互等待,互通消息,称线程同步:临界区的入口与结尾
同步与互斥都通过锁来实现
锁
忙等待锁:自旋锁
死循环实现
无等待锁
通过创建线程锁等待队列,先进先出
信号量
线程的同步互斥访问如何实现?
生成者消费者问题:
哲学家就餐问题:
读者与写者问题:
锁:不可避免的死锁问题
概念:
同时满足四个条件:
互斥条件
持有并等待条件
不可剥夺条件
环路等待条件
简单模拟死锁问题
工具定位死锁
linux:pstack<pid>:显示跟踪栈(函数的调用)
gdb
避免死锁:破坏其中一个条件。
边栏推荐
- Leetcode 876. Intermediate node of linked list
- Computer factory interview questions
- Ml4 self study notes
- 一些工具,插件,软件链接分享给大家~
- leetcode---技巧
- Sqlyog installation and configuration tutorial
- shell工具finalShell
- Leetcode 14. longest public prefix
- ML10 self study notes SVM
- 2022 spring recruit - Hesai technology FPGA technology post (one or two sides, collected from: Digital IC workers and FPGA Explorers)
猜你喜欢
官方教程 Redshift 05 AOVs
Dynamic planning summary
给二维表添加时间序列索引
Leetcode 13. Roman numeral to integer
一些工具,插件,软件链接分享给大家~
ML7 self study notes
官方教程 Redshift 05 system参数详细解释
Add time series index to two-dimensional table
[beauty of software engineering - column notes] 16 | how to write project documents?
Ml4 self study notes
随机推荐
LeetCode #7.整数反转
2022 spring recruit - Hesai technology FPGA technology post (one or two sides, collected from: Digital IC workers and FPGA Explorers)
MySql-面试题
【Leetcode刷题】数组1——双指针
网络安全学习篇
Abstract classes and interfaces
Leetcode 344. reverse string
【软件工程之美 - 专栏笔记】14 | 项目管理工具:一切管理问题,都应思考能否通过工具解决
UE4 高光官方参考值
leetcode刷题笔记 605. Can Place Flowers (Easy) 605.种花问题
#6898 变幻的矩阵 题解
LeetCode #26.删除有序数组中的重复项
爬取表情包
多线程和并发
Add time series index to two-dimensional table
利用云打码来破解登录遇到验证码的问题
官方教程 Redshift 04 渲染参数
关于【链式前向星】的自学理解
Multithreading and concurrency
SQLyog 安装和配置教程