进程的目标 原子 二元信号量 多元信号量 互斥量 临界区 读写锁 变量缓存到寄存器 CPU动态调度换序

《程序员的自我修养:链接、装载与库》
第1章
进程的总体目标是希望每个进程从逻辑上来看都可以独占计算机的资源。
 

 

 

 计算机软件体系结构
 

 

1.4.1 尽可能不让CPU不工作
多道程序 multiprogramming
程序间不分轻重缓急

分时系统 time-sharing system
每个程序运行一段时间以后都主动让出CPU给其他程序,使得一段时间内每个程序都有机会运行一小段时间。
如果一个程序在进行一个很耗时的计算,一直霸占着CPU不放,那么操作系统也没办法,其他程序都只有等着。

多任务系统 multi-tasking 操作系统接管了所有的硬件资源
进程 process 抢占式 preemptive
 
分段 segmentation

 

 

 

 

段映射机制
 
分页 paging
 
 
1.6 众人拾柴火焰高
1.6.1 线程基础
软件并发执行的方法。
 
线程 thread 轻量级进程 lightweight process  程序执行流的最小单元
由  线程Id、当前指令指针PC、寄存器集合、堆栈   组成
一个进程由多个线程组成,各个线程之间共享程序的内存空间(包括代码段、数据段、堆等)及一些进程级的资源(如打开文件和信号)
 
多个线程并发执行,共享进程的全局变量和堆的数据。

 

 多线程优势

 

线程的访问权限

线程私有:栈、线程局部存储 thread local storage TLS、寄存器 

 

 线程调度与优先级

线程数量 处理器数量

 

 线程调度

时间片

 

 

线程状态切换

优先级调度 priority schedule 轮转法 round robin  

线程优先级 thread priority 

 线程优先级:

1、用户手动设置 

2、系统根据线程的表现自动调整优先级,以使得调度更有效率

IO 密集型线程  IO bound thread

CPU密集型线程 CPU bound thread 

 

1、用户指定优先级

2、根据进入等待状态的频繁程度提升或降低优先级

3、长时间得不到执行而被提升优先级

 

可抢占线程

preemption

 

 

Linux的多线程

 

 

 

 

 

 

 

 

写时复制 copy on write COW

1.6.2 线程安全 

 

 

 

 

 

 

 

 

 

 


 


 


 


 


 


 

 
 

 

 

 

 
 
 
 
 
 
posted @   papering  阅读(209)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2018-03-09 函数的定义 对象 类型转换
2018-03-09 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 数据库连接不释放测试 连接池 释放连接 关闭连接 有关 redis-py 连接池会导致服务器产生大量 CLOSE_WAIT 的再讨论以及一个解决方案
2018-03-09 mysql 权限控制
2017-03-09 message queue
2017-03-09 tmp
2017-03-09 asin转化率 店铺SKU分流 单品在本店铺销量
2017-03-09 动态长度中英字符串显示至固定高度td
点击右上角即可分享
微信分享提示