好文推荐:操作系统篇
好文推荐:操作系统篇
Linux
其他
阻塞与非阻塞,同步与异步、I/O模型
其他
socket阻塞与非阻塞,同步与异步、I/O模型 通俗讲解 异步,非阻塞和 IO 复用 select、poll、epoll详解 IO多路复用之select总结 IO多路复用之poll总结 IO多路复用之epoll总结
其他
进程调度算法
页面置换算法
锁开销和上下文切换开销
- 虚拟存储器页面置换算法 最佳置换算法(Optimal):一种理论的算法,选着淘汰的页面是以后一定不再使用的页面(理想化的),该算法无法实现,只能作为其他算法好坏的一个评价对比。 先进先出(FIFO)算法:总是最先淘汰最先进去的页面,该算法容易实现。缺点:通常程序调入内存的先后顺序和程序执行的先后顺序不一致,导致缺页率高。 最近最久未使用(LEU):FIFO算法性能差,LRU算法根据页面调入内存的先后孙旭决定,因为违法预测未来的使用情况,就是用过去的使用情况作为将来的使用情况的近似。 最少使用算法(LFU):在每个页面设置一个移位寄存器记录该页面的访问频率,最近时期最少使用的页面被淘汰 。
内存管理
是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。内存管理主要包括虚地址、地址变换、内存分配和回收、内存扩充、内存共享和保护等功能。
-
页式存储管理 将程序的逻辑地址空间划分为固定大小的页(page),而物理内存划分为同样大小的页框(page frame)。程序加载时,可将任意一页放人内存中任意一个页框,这些页框不必连续,从而实现了离散分配。该方法需要CPU的硬件支持,来实现逻辑地址和物理地址之间的映射。在页式存储管理方式中地址结构由两部构成,前一部分是页号,后一部分为页内地址w(位移量) 分页存储管理是将一个进程的地址(逻辑地址空间)空间划分成若干个大小相等的区域,称为页,相应地,将内存空间划分成与页相同大小(为了保证页内偏移一致)的若干个物理块,称为块或页框(页架)。在为进程分配内存时,将进程中的若干页分别装入多个不相邻接的块中。
-
段式存储管理 在段式存储管理中,将程序的地址空间划分为若干个段(segment),这样每个进程有一个二维的地址空间。在前面所介绍的动态分区分配方式中,系统为整个进程分配一个连续的内存空间。而在段式存储管理系统中,则为每个段分配一个连续的分区,而进程中的各个段可以不连续地存放在内存的不同分区中。程序加载时,操作系统为所有段分配其所需内存,这些段不必连续,物理内存的管理采用动态分区的管理方法。 在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段是一组完整的逻辑信息,如有主程序段、子程序段、数据段及堆栈段等,每个段都有自己的名字,都是从零开始编址的一段连续的地址空间,各段长度是不等的。
-
段页式管理 段页式管理事段式管理和页式管理案结合,所以具有二者优点
-
区别: 1.页是信息的物理单位,分页是为了实现非连续的分配,以便解决内存的碎片问题,或者说分页是为了由于系统管理的需要。 2.页的大小固定是由系统确定的,将逻辑地址划分为页号和页内地址是由机器硬件实现的。而段的长度是不固定的,决定与用户的程序长度,通常由编译程序进行编译时根据信息的性质来划分。 3.分页式存储管理的作业地址空间是一维的,分段式的存储管理的作业管理地址空间是二维的。
通道
通道相当于一个功能简单的处理器,具有自己的指令系统,并与主机共享同一个内存,以保存通道程序和交换数据,通道的功能就是在CPU的控制下完成数据的输入输出工作。
管道
管道是单向的、先进先出的 ,它把一个进程的输出和另一个进程的输入连接在一起。一个进程(写进程)在管道的尾部写入数据,另一个进程(读进程)从管道的头部读出数据 。
通信
Linux进程间通信:管道、信号、消息队列、共享内存、信号量、套接字(socket) Linux线程间通信:互斥量(mutex),信号量,条件变量 Windows进程间通信:管道、消息队列、共享内存、信号量(semaphore) 、套接字(socket) Windows线程间通信:互斥量(mutex),信号量(semaphore)、临界区(critical section)、事件(event)
轮询和抢占
轮询调度算法的原理是每一次把来自用户的请求轮流分配给内部中的服务器,从1开始,直到N(内部服务器个数),然后重新开始循环。
抢占式任务调度允许调度程序根据某种原则去暂停某个正在执行的进程,将已分配给该进程的处理机重新分配给另一进程。抢占方式的优点是,可以防止一个长进程长时间占用处理机,能为大多数进程提供更公平的服务,特别是能满足对响应时间有着较严格要求的实时任务的需求。
因为抢占式调度可能会暂停一些进程,需要记录进程的运行状态,较为复杂。轮询式只需要轮流分配资源,调度简单。
临界资源
属于临界资源的硬件有打印机、 磁带机 等,软件有消息缓冲队列、 变量 、 数组 、缓冲区等