导航网站设计,万城建设网站,个人网站怎么做 简历,wordpress滑验证概念负责管理协调硬件、软件等计算机资源的工作为上层用户、应用程序提供简单易用的服务是一种系统软件功能和目标资源的管理者处理机管理#xff1a;进程管理#xff08;进程控制、进程同步、进程通信、死锁处理、处理机调度#xff09;存储器管理#xff1a;内存管理进程管理进程控制、进程同步、进程通信、死锁处理、处理机调度存储器管理内存管理内存分配、地址映射、内存保护与共享、虚拟内存文件管理文件存储空间的管理、目录管理、文件读写管理和保护设备管理完成用户的I/O请求方便用户使用各种设备并提高设备的利用率。主要包括缓冲管理、设备分配、设备处理、虚拟设备向用户提供服务命令接口联机命令接口、脱机命令接口程序接口由一组系统调用组成GUI用户图形界面对硬件机器的扩展扩充机器操作系统的特征并发、共享、虚拟、异步并发两个或多个事件在同一时间间隔内发生。宏观上是同时发生的但微观上是交替发生的。常考易混概念——并行指两个或多个事件在同一时刻同时发生。单核CPU同一时刻只能执行一个程序各个程序只能并发地执行多核CPU同一时刻可以同时执行多个程序多个程序可以并行地执行共享共享即资源共享是指系统中的资源可供内存中多个并发执行的程序共同使用。两种资源共享方式互斥共享方式、同时共享方式虚拟虚拟是指将一个物理上的实体变成若干个逻辑上的对应物。虚拟技术空分复用技术如虚拟存储器技术、时分复用技术如虚拟处理器异步异步是指在多道程序环境下允许多个程序并发执行但是由于资源有限进程执行不是一贯到底的而是走走停停以不可预知的速度向前推进这就是进程的异步性。操作系统的运行机制两种指令处理器能识别、执行的最基本命令特权指令如内存清零指令非特权指令如普通的运算指令两种处理器状态用程序状态字寄存器PSW中的标志位识别核心态管态特权指令、非特权指令都能执行用户态目态只能执行非特权指令两种程序内核程序、应用程序操作系统的内核内核是计算机上配置的底层软件是操作系统最基本、最核心的部分。操作系统的体系结构大内核、微内核中断当中断发生时CPU立即进入核心态当中断发生后当前运行的进程暂停运行并由操作系统内核对中断进行处理对于不同的中断信号会进行不同的处理中断内中断和外中断系统调用如果一个进程在用户态需要使用内核态的功能就进行系统调用从而陷入内核由操作系统代为完成。操作系统作为用户和计算机之间的接口需要向上提供简易的服务。主要包括命令接口和程序接口。其中程序接口由一组系统调用组成。核心态大内核大内核是将操作系统功能作为一个紧密结合的整体放到内核。由于各模块共享信息因此有很高的性能。微内核将一部分操作系统功能移出内核从而降低内核的复杂性。在微内核结构下操作系统被划分为小的、定义良好的模块只有微内核这一模块运行在内核态其余模块运行在用户态。中断分类外中断由CPU执行指令以外的事件引起。异常由CPU执行指令的内部事件引起如非法操作码、地址越界、算术溢出等。陷入在用户程序中使用系统调用。进程是资源分配的基本单位。线程是独立调度的基本单位。一个进程中可以有多个线程他们共享资源。区别拥有资源进程是资源分配的基本单位但是线程不拥有资源线程可以访问隶属进程的资源。调度线程是独立调度的基本单位在同一进程中现成的切换不会引起进程切换从一个进程中的线程切换到另一个进程中的线程时会引起进程的切换。系统开销由于创建或撤销进程时系统都要为之分配或回收资源如内存空间、I/O设备等所付出的开销远大于创建或撤销进程时的开销。类似的在进程切换是涉及当前执行进程CPU环境的保存及新调度进程CPU环境的设置而线程切换时只需保存和设置少量寄存器内容开销很小。通信方面线程间可以直接读写同一进程中的数据进行通信但是进程通信需要借助IPC。进程状态的切换就绪状态ready等待被调度运行状态running阻塞状态waiting等待资源进程调度算法批处理系统先来先服务短作业优先最短剩余时间优先交互式系统时间片轮转优先级调度多级反馈队列时间片轮转和优先级调度的结合实时系统进程同步临界区对临界资源进行访问的那段代码同步与互斥多个进程合作产生直接制约关系有先后执行顺序同一时刻只有一个进程进入临界区信号量可以对其执行down和up操作。管程在一个时刻只能有一个进程使用管程。管程引入条件变量以及相关的操作wait()和signal()来实现同步操作。对条件变量执行wait()操作会导致调用进程阻塞让管程让出来给另一个进程。signal()操作用于唤醒被阻塞的进程。进程通信进程间传输信息管道通过调用pipe函数创建fd[0]用于读fd[1]用于写。限制是只支持半双工通信单向交替传输只能在父子或兄弟进程中使用。FIFO命名管道去除了只能在父子进程中使用的限制消息队列消息队列可以独立于读写进程存在从而避免了 FIFO 中同步管道的打开和关闭时可能产生的困难避免了 FIFO 的同步阻塞问题不需要进程自己提供同步方法读进程可以根据消息类型有选择地接收消息而不像 FIFO 那样只能默认地接收。信号量计数器共享存储最快的进程通信IPC套接字可以用于不同机器间的进程通信死锁发生的必要条件互斥每个资源要么已经分配给了一个进程要么就是可用的占有和等待已经得到了某个资源的进程可以再请求新的资源不可抢占只能被占有它的进程显式的释放环路等待进程组成环路处理方法1.鸵鸟策略不采取措施2.死锁检测和死锁恢复检测到死锁后采取措施进行恢复每种类型一个资源的死锁检测通过检测有向图是否存在环。深度优先算法。每种类型多个资源的死锁检测每个进程最开始时都不被标记执行过程有可能被标记。当算法结束时任何没有被标记的进程都是死锁进程。3.死锁恢复利用抢占恢复利用回滚恢复通过杀死进程恢复死锁预防破坏互斥条件破坏占有和等待条件破坏不可抢占条件破坏环路等待编号死锁避免安全状态单个资源的银行家算法多个资源的银行家算法虚拟内存让物理内存扩充成更大的逻辑内存从而让程序获得更多的可用内存。分页系统地址映射内存管理单元MMU管理着地址空间和物理内存的转换其中的页表Page table存储着页程序地址空间和页框物理内存空间的映射表。一个虚拟地址分成两个部分一部分存储页面号一部分存储偏移量。页面置换算法访问的页面不在内存中将该页调入内存如果无空闲空间系统调出一个页面腾空间。使页面置换频率最低缺页率最低最佳OPT被换出的页面是最长时间不再被访问的保证最低的缺页率。最近最久未使用LRU链表实现最近未使用NRU先进先出FIFO选择换出的页面是最先进入的页面第二次机会算法时钟分段虚拟内存采用的是分页技术也就是将地址空间划分成固定大小的页每一页再与内存进行映射。分段的做法是把每个表分成段一个段构成一个独立的地址空间。每个段的长度可以不同并且可以动态增长。段页式程序的地址空间划分成多个拥有独立地址空间的段每个段上的地址空间划分成大小相同的页。这样既拥有分段系统的共享和保护又拥有分页系统的虚拟内存功能。分页和分段的比较对程序员的透明性分页透明但是分段需要程序员显式划分每个段。地址空间的维度分页是一维地址空间分段是二维的。大小是否可以改变页的大小不可变段的大小可以动态改变。出现的原因分页主要是用于实现虚拟内存从而获得更大的地址空间分段是为了使程序和数据可以被划分为逻辑上独立的地址空间并且有助于共享和保护。磁盘的结构盘面Platter一个磁盘有多个盘面磁道Track盘面上的圆形带状区域一个盘面可以有多个磁道扇区Track Sector磁道上的一个弧段一个磁道可以有多个扇区它是最小的物理储存单位目前主要有 512 bytes 与 4 K 两种大小磁头Head与盘面非常接近能够将盘面上的磁场转换为电信号读或者将电信号转换为盘面的磁场写制动手臂Actuator arm用于在磁道之间移动磁头主轴Spindle使整个盘面转动。磁盘调度算法读写一个磁盘块的时间的影响因素有旋转时间主轴转动盘面使得磁头移动到适当的扇区上寻道时间制动手臂移动使得磁头移动到适当的磁道上实际的数据传输时间其中寻道时间最长因此磁盘调度的主要目标是使磁盘的平均寻道时间最短。先来先服务FCFS按照磁盘请求的顺序进行调度最短寻道时间优先SSTF优先调度与当前磁头所在磁道距离最近的磁道电梯算法SCAN总是按照一个方向进行磁盘调度直到该方向上没有未完成的磁盘请求然后改变方向。编译系统预处理阶段处理以 # 开头的预处理命令编译阶段翻译成汇编文件.s汇编阶段将汇编文件翻译成可重定位目标文件.o链接阶段将可重定位目标文件和 printf.o 等单独预编译好的目标文件进行合并得到最终的可执行目标文件。静态链接静态链接器以一组可重定位目标文件为输入生成一个完全链接的可执行目标文件作为输出。链接器主要完成以下两个任务符号解析每个符号对应于一个函数、一个全局变量或一个静态变量符号解析的目的是将每个符号引用与一个符号定义关联起来。重定位链接器通过把每个符号定义与一个内存位置关联起来然后修改所有对这些符号的引用使得它们指向这个内存位置。目标文件可执行目标文件可以直接在内存中执行可重定位目标文件可与其它可重定位目标文件在链接阶段合并创建一个可执行目标文件共享目标文件这是一种特殊的可重定位目标文件可以在运行时被动态加载进内存并链接动态链接静态库有以下两个问题当静态库更新时那么整个程序都要重新进行链接对于 printf 这种标准函数库如果每个程序都要有代码这会极大浪费资源。共享库是为了解决静态库的这两个问题而设计的在 Linux 系统中通常用 .so 后缀来表示Windows 系统上它们被称为 DLL数据库模式定义语言Data Definition Language。它具有以下特点在给定的文件系统中一个库只有一个文件所有引用该库的可执行目标文件都共享这个文件它不会被复制到引用它的可执行文件中在内存中一个共享库的 .text 节已编译程序的机器代码的一个副本可以被不同的正在运行的进程共享。参考资料https://github.com/CyC2018/CS-Notes/blob/master/notes/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%20-%20%E7%9B%AE%E5%BD%95.mdgithub.com