操作系统
不死奇迹
和一群有趣的灵魂,享受有趣的故事
展开
-
互斥量与信号量区别
互斥量与信号量转载 2022-10-14 15:15:26 · 112 阅读 · 0 评论 -
Fiber——windows 下的协程API
Fiber原创 2022-08-01 14:39:13 · 520 阅读 · 0 评论 -
C++跨动态库dll内存分配与释放问题总结
结论:如果两个dll(或者exe调用dll)的CRT链接为MD,则可以跨动态库分配和释放;如果一个是MT,另一个是MD则会有问题(比如崩溃)。利用虚函数的动态绑定技术,动态绑定分配释放内存的new和delete等,可以解决上述1的问题,例如shared_ptr的实现。但如果shared_ptr包装是vector等类型,在调用和被调用中都涉及到vector的修改的话,仍然会有问题,因为两个地方都会有释放和分配。详情见以下两个文章:跨dll的内存分配释放问题智能指针shared_ptr为何可以实原创 2021-04-11 14:17:46 · 2060 阅读 · 0 评论 -
性能优化——性能之巅
原创 码砖杂役 2019-08-16 20:36:41性能之巅-优化你的程序outline:关注&指标&度量,基础理论知识,工具&方法,最佳实践,参考资料性能优化关注:CPU、内存、磁盘IO、网络IO等四个方面。性能指标:吞吐率、响应时间、QPS/IOPS、TP99、资源使用率是我们经常关注的指标。时间度量:从cpu cycle到网络IO,自上到下,时间量级越大。监控、分析、优化,三部曲,以终为始,循环往复。优化性能,需要一些系统编程知识。提升处理能力转载 2020-09-06 09:52:13 · 437 阅读 · 1 评论 -
学习操作系统-清华大学经典课程课程
https://github.com/chyyuu/os_course_info视频: bilibili或西瓜视频搜索: “操作系统 陈渝”原创 2019-12-16 13:42:06 · 493 阅读 · 0 评论 -
linux和windows实现使用虚拟内存的解决方法
抛出windows下使用虚拟内存的方式:mmap是posix标准下的一个函数,它将文件或设备的访问映射到内存中。下面的代码摘自ngx_rtmp_mp4_module.c,nginx的rtmp模块用它来从服务的录制的mp4文件中读取,以rtmp媒体流的形式分发给播放端。这样做可能是由于mp4的atom读取通过文件read和seek的操作不如直接内存映射后来的方便吧。它的给出了win32和lin...原创 2019-12-03 19:28:29 · 464 阅读 · 0 评论 -
分布式和集群
集群可以理解为分布式的子集。不管是分布式还是集群,有以下几点需要注意:需要通过网络进行节点间的通讯。通讯一般分为两种方式:(1) 消息传递方式(2)远过程调用方式即RPC高性能:指可以充分利用系统的所提供的能力。高可用:即相当于一个节点宕机,有其他节点可以提供相同的服务,给予外界的感觉为系统或者应用一直可用的感觉。需要着重理解“共享磁盘”概念。我们可以想象下,我们的系统是一个集群或...原创 2019-11-11 16:41:53 · 84 阅读 · 0 评论 -
计算机网络OSI七层模型的讲解
发现一片博客讲的很不错,向大家推荐下:https://blog.csdn.net/warrior_0319/article/details/80453940原创 2019-10-14 10:54:36 · 129 阅读 · 0 评论 -
虚拟内存
虚拟内存术语:简单分段或简单分页技术都要求进程运行时,该进程的所有内存块(页或段,取决的是分页还是分段)都必须全部加载到内存中.为了解进程运行时,可以不用提前加载全部的该进程的内存块,提出了以下这种策略:假设需要把一个新竭诚放入内存时,操作系统仅读取包含程序开始处的一个或几个块.进程执行中的任何时候都在内存中的部分被定义成进程的”常驻集(resident set)”。当进程执行时,只...原创 2019-08-17 17:55:36 · 190 阅读 · 0 评论 -
并发——死锁与饥饿
不存在一个可以解决所有类型死锁的有效策略!!!操作系统中死锁检测、预防和避免方法的小结死锁的条件:死锁有3个必要条件:a. 互斥。一次只有一个进程可以使用一个资源。其他进程不能访问已分配给其他进程的资源。b. 占有且等待。当一个进程等待其他进程时,继续占有已分配的资源。c. 不可抢占。不能强行抢占已占有的资源。备注: 以上3个条件在很多情况下这些条件都是合乎要求的。例如...原创 2019-08-17 09:25:44 · 273 阅读 · 0 评论 -
操作系统-内存管理
1.内存管理术语:a.页:一个固定长度的数据块,存储在二级存储器中(如磁盘)。数据也可以临时复制入内存中的页框中。b.段:一个变长的内存块,存储在二级存储器中。整个段可以临时复制到内存的一个可用区域内(分段存储),或者可以将一个段分为许多页,将每页单独复制到内存中(分段和分页相结合,即段页式存储)。2.内存管理的需求:a.重定位:即在内存中的程序换出内存后,下次再加载进内存时,需要重新定位...原创 2019-08-13 11:03:58 · 223 阅读 · 0 评论 -
单处理器调度
调度类型:关于调度类型在进程状态中的的角色和阶段如下图所示:长程调度: 长程调度程序决定哪一个程序可以进入到系统中处理,因此,它控制系统并发度。一旦允许进入,一个作业或用户程序就成为一个进程,并被添加到供短程调度程序使用的队列中等待。在某些系统中,一个新创建的进程开始处于被换出状态。这种情况下,它被添加到供中程调度程序使用的队列中等待调度。在批处理系统或通用的操作系统中的批...原创 2019-08-18 16:41:49 · 348 阅读 · 0 评论 -
和并发相关的术语和技术的介绍
原子操作: 一个或多个指令的序列,对外是不可分的;即任何其它进程都无法看到其中间状态或中断此操作.临界区: 是一段代码,在这段代码中进程将访问共享资源,当另一个进程已经在这段代码中运行时,这个进程就不能在这段代码中执行.死锁: 两个或两个以上的进程因其中的每个进程都在等待其他进程做完某些事情而不能继续执行,这样的情形叫死锁.活锁: 两个或两个以上进程为了响应其他进程中的变化而持续改变自己的...原创 2019-07-27 11:31:28 · 216 阅读 · 0 评论 -
操作系统的执行(或者称为操作系统与进程的运行关系)
操作系统的两个特殊的事实:操作系统 与普通的计算机软件以同样的方式运行,也就是说,它也 是由处理器执行的一个程序。操作系统经常释放控制权,并且依赖于处理器恢复控制权 。操作系统与进程的运行关系分为以下 2种 方式:无进程的内核 (一般为老式操作系统)此种情况下,操作系统在所有的进程之外执行,即此时的操作系统为一个单独的内核。通过 这种方法 ,当前 正在执行的进程被中断或者产生一个...原创 2019-06-27 11:12:24 · 3129 阅读 · 0 评论 -
进程与线程
以下描述只是作为自己的学习记要和心得!!!!!!1.进程是系统资源分配的最小单位,进程是受系统保护的一个单位即受保护地对处理器、其它进程(用于进程间通信)、文件和I/O资源(设备和通道)的访问。2.在支持多线程的系统中,线程是CPU调度和执行的最小单位!!每个线程包含以下部分:a.线程执行状态(运行、就绪等)b.在未运行时保存的线程上下文;从某种意义上看,线程看做是进程内的一个被独立操作的...原创 2019-07-02 18:31:45 · 255 阅读 · 0 评论