随笔分类 - 操作系统
摘要:C++多线程笔记 关于什么是线程可以看看小林的这篇文章 这篇笔记主要是在整理C++thread库的使用,对于较为高级的比如写一个线程池,在我之前的文章中有写过。 OK,让我们看看C++中的多线程吧。 1.1 创建一个线程 C++提供了std::thread来创建一个线程。使用时需要包含头文件,该头文
阅读全文
摘要:用C++写一个简易线程池 什么是线程池? 用一个池子管理线程。线程过多会带来额外开销,线程池维护多个线程,等待监督管理者分配可并发的任务。一方面避免了处理任务时创建线程开销的代价,另一方面避免了线程过度膨胀导致过分调度,保证内核的充分调用。 线程池的优化思路是这样的:我们先在池子里创建若干个线程,当
阅读全文
摘要:一次请求 考虑一个简单的问题,我们的客户端是如何向服务端发起一次请求的。 抓一个包来看看真相: 这是一次由本机发向www.baidu.com的一次http的GET请求。 前三个报文是TCP三次握手,后四三个报文是TCP四次挥手。 中间则是由本机先向百度服务器发送一个HTTP请
阅读全文
摘要:知识点小记 写牛客题目时错了的都记一下 1.响应比高者优先作业调度算法是通过计算时间和周转时间来实现的。 调度算法: 感谢巨巨的博客 一.先来先服务(FCFS) 思想: 从“公平”的角度思考。 规则: 按照作业/进程到达的先后顺序。 用于作业/进程调度: 作业调度:考虑那个作业先到达 进程调
阅读全文
摘要:操作系统————存储管理(上) 1.地址变换(重定位) 逻辑地址:用户编程的地址 物理地址:被加载到主存的地址 重定位:从逻辑地址到物理地址 (1)静态:装入时一次性实现地址变换。以后不再变换。 优点: 不需要硬件 缺点: a.不支持虚拟存储:不能重新分配雷村 b.不能共享:每个程序占用连续的内存
阅读全文
摘要:操作系统(4) 如何分析同步与互斥: (1)分析类型:纯互斥,纯同步,同步加互斥 (2)同步+互斥先做同步后做互斥 (3)分析存在几个运行主体 (4)站在每个运行主体的角度思考:它需要申请什么资源(条件),释放什么资源(结果) (5)分析同步信号量的初值 (6)再做互斥/纯互斥:找到临界区,完成互斥
阅读全文