当前位置: 首页 > news >正文

51自学网网站开发自助网站建设哪家好

51自学网网站开发,自助网站建设哪家好,最优惠的赣州网站建设,如何自己做购物网站文章目录一 基本概念1 操作系统的特征2 操作系统的位置3 计算机的硬件组成4 中断与异常5 系统调用二 进程管理1 进程控制块 PCB#xff08;Process Control Block#xff09;2 进程的状态与转换3 进程间的通信4 线程5 调度算法6 死锁7 PV 操作三 内存管理1 内存的非连续分配2… 文章目录一 基本概念1 操作系统的特征2 操作系统的位置3 计算机的硬件组成4 中断与异常5 系统调用二 进程管理1 进程控制块 PCBProcess Control Block2 进程的状态与转换3 进程间的通信4 线程5 调度算法6 死锁7 PV 操作三 内存管理1 内存的非连续分配2 虚拟内存的概念3 虚拟内存的实现——局部性原理4 虚拟内存的页面置换算法5 抖动和颠簸四 文件管理五 I/O管理1 同步与异步2 阻塞与非阻塞3 I/O模型同步阻塞I/O 同步非阻塞I/O4 I/O模型I/O多路复用一 基本概念 1 操作系统的特征 并发两个或多个事件在同一时间间隔内发生共享系统中的资源可供内存中多个并发执行的进程共同使用分为互斥共享方式 / 同时访问方式虚拟将一个物理上的实体变为若干逻辑上的对应物异步进程的执行不是一贯到底而是以不可预知的速度向前推进 2 操作系统的位置 操作系统是在硬件的基础之上安装的 软件能够根据用户输入的指令达到 控制硬件 的效果操作系统相当于是一个中间层为用户层和硬件提供各自的接口屏蔽了不同应用和硬件之间的差异达到统一标准的作用大部分计算机有两种运行模式内核态 和 用户态软件中最基础的部分是操作系统它运行在 内核态 中操作系统具有硬件的访问权可以执行机器能够运行的任何指令软件的其余部分运行在 用户态 下 3 计算机的硬件组成 冯诺伊曼体系结构运算器、控制器、存储器内存与外存、输入设备、输出设备总线(Buses)总线在组件之间来回传输字节信息。通常总线被设计成传送定长的字节块也就是 字(word)。字中的字节数是一个基本的系统参数常见的有 4 个字节32 位或者 8 个字节64 位 4 中断与异常 操作系统内核工作在核心态用户程序工作在用户态但用户程序需要使用核心态的功能。中断和异常实现了从用户态到核心态的切换是用户态转为核心态的唯一途径。发生中断或异常时运行在用户态的 CPU 会立刻切换成核心态中断的定义也称外中断指来自 CPU 指令以外的事件发生I/O结束中断、时钟中断等该类中断通常是与当前指令无关的事件即它们与当前处理机运行的程序无关异常的定义也称内中断或 陷入(trap)指源自 CPU 执行指令内部的事件程序的非法操作码、地址越界、算术溢出等对异常的处理一般要依赖于当前程序的运行现场 5 系统调用 用户在程序中调用操作系统提供的一些子功能凡是与资源有关的操作都必须通过系统调用的方式向操作系统提出服务请求并由操作系统的内核程序代为完成发起系统调用需要用户程序执行陷入(trap)指令该指令不是特权命令因为是在用户态使用即通过异常的方式切换为核心态从核心态转为用户态需要执行中断返回指令该指令是特权指令 和网络模型的对应关系系统调用发生在5-4时 二 进程管理 1 进程控制块 PCBProcess Control Block 程序段 相关数据段 PCB 进程实体PCB 是一种数据结构是标志进程存在的唯一标志创建进程实际上指创建进程实体中的 PCB撤销进程实际上指撤销 PCBPCB 是有限的如果创建进程时申请 PCB 失败则创建失败 2 进程的状态与转换 状态含义创建进程正在被创建尚未转到就绪态就绪进程获得了除了处理机之外的一切所需资源一旦得到处理机就可以运行。通常处于就绪态的进程组成就绪队列运行进程正在处理机上运行阻塞进程正在等待某一事件而暂停运行如等待某些资源不包括处理机或等待I/O完成等即使处理机空闲也不能运行结束进程正在从系统中消失进程先进入结束态然后回收释放资源从运行态变为阻塞态是主动行为从阻塞态变为就绪态是被动行为需要其它进程协助进程在切换时运行信息存放在 PCB 中 3 进程间的通信 共享存储进程间存在一块可直接访问的共享的空间 消息传递进程间的数据交换以格式化的消息为单位 管道通信消息传递的一种特殊方式管道指 pipe 文件连接一个读进程和一个写进程 4 线程 线程是轻量级的进程是最基本的 CPU 执行单元除了少量的运行必备的资源线程几乎不拥有系统资源但可以和同属一个进程的其它线程共享进程拥有的资源为什么引入线程可以提高系统的并发性同一进程内的线程相互切换的开销很小不进行进程的切换即使线程切换时需要发生进程切换总体而言进程切换的次数变少了 5 调度算法 衡量调度的一些基本指标 周转时间从作业提交到完成经历的时间 带权周转时间作业周转时间和作业实际运行时间的比值 先来先服务FCFS调度算法 对长作业有利短作业不利 短作业优先SJF调度算法 对短作业有利长作业不利 优先级调度算法 为作业分配优先级每次选择优先级最高的一个或几个作业执行 可以分为 剥夺式 / 非剥夺式静态优先级 / 动态优先级 高响应比优先调度算法 响应比 (等待时间要求服务时间) / 要求服务时间 是对 FCFS 和 SJF 的综合平衡每次选择相应比最高的作业投入运行 时间片轮转调度算法 时间片的大小对系统性能影响很大时间片足够大时退化成先来先服务时间片太小时进程切换过于频繁CPU 利用率降低 多级反馈队列调度算法* 是对优先级调度算法和时间片轮转调度算法的综合 优先级越高的队列时间片越小 高优先级队列可以抢占低优先级队列的 CPU只有在高优先级队列为空时CPU 才分配给低优先级队列的进程 每隔一段时间将所有的进程重置到最高优先级的队列中防止低优先级的进程饥饿以及进程类型变化导致的不公平对待 相同优先级的进程轮转运行6 死锁 产生的必要条件 条件解释互斥条件在某段时间内资源仅被一个进程占有其它进程请求该资源只能等待不剥夺条件进程获得的资源只能主动释放不能被其它进程强行夺走请求并保持条件进程已经持有至少一个资源再请求新的资源时对已持有的资源保持不放循环等待条件存在进程资源的循环等待链 处理死锁的策略 死锁预防破坏产生死锁的产生条件之一死锁避免银行家算法 进程运行前先声明对各种资源的最大需求量 操作系统先测试该进程已占用的资源数与本次申请的资源数是否超过声明的最大需求量如果超出则拒绝分配 如果不超出则测试 系统现存的资源能否满足进程需要的最大资源如果满足则可以分配否则推迟分配死锁检测和解除资源剥夺、撤销进程、进程回退 7 PV 操作 PV 操作是一种实现进程互斥和同步的方法 P(S)使 SS-1 若 S0 则该进程继续执行否则排入等待队列 V(S)使 SS1 若 S0 唤醒等待队列中的一个进程信号量根据作用可以分为 互斥信号量 和 同步信号量实现互斥的 P 操作一定要放在实现同步的 P 操作之后先获取资源再获取锁否则可能会造成死锁V 操作的顺序可以交换 生产者-消费者问题 semaphore mutex 1; //互斥信号量 semaphore empty n; //同步信号量空闲缓冲区的数量 semaphore full 0; //同步信号量非空缓冲区的数量 producer(){while(1){生成一个产品;P(empty); //消耗一个空闲缓冲区P(mutex);把产品放入缓冲区;V(mutex);V(full) //增加一个产品} } consumer(){while(1){P(full); //消耗一个产品P(mutex);从缓冲区取出一个产品;V(mutex);V(empty); //增加一个空闲缓冲区使用产品;} }吃水果问题 桌上有一个盘子每次能放 n 个水果妈妈向盘中放苹果爸爸向盘中放橘子儿子专等吃盘里的橘子女儿专等吃盘里的苹果。只要盘子空妈妈可向盘中放水果仅当盘中有自己需要的水果时儿子或女儿可从中取出因为爸爸和妈妈向盘中放水果需要消耗同一个信号量 empty所以要加互斥锁如果仅有一个儿子和一个女儿在吃水果的时候不需要加互斥锁消耗的不是同一种水果如果是多个则需要加加不加互斥锁取决于需要进行 P 操作的资源是否存在竞争 mutex 1 // 互斥量 empty n // 同步量 apple 0 // 同步量 orange 0 // 同步量mother(){while(1){P(empty);P(mutex);放苹果;V(mutex);V(apple);} } father(){while(1){P(empty);P(mutex);放橘子;V(mutex);V(orange);} } son(){while(1){P(orange);// P(mutex);吃橘子;// V(mutex);V(empty);} } daughter(){while(1){P(apple);// P(mutex);吃苹果;// V(mutex);V(empty);} }抽烟者问题 semaphore offer10; // 为第一个吸烟者提供卷纸和火柴 semaphore offer20; // 为第二个吸烟者提供火柴和烟草 semaphore offer30; // 为第三个吸烟者提供卷纸和烟草 semaphore finish1; // 通知供应者继续提供材料provider(){int rand;while(1){P(finish);rand getRandom()%3;if(rand 0)V(offer1);else if(rand 1)V(offer2);elseV(offer3);} }somker1(){while(1){P(offer1);制作香烟并吸掉;V(finish);} } somker2(){while(1){P(offer2);制作香烟并吸掉;V(finish);} } somker3(){while(1){P(offer3);制作香烟并吸掉;V(finish);} }三 内存管理 1 内存的非连续分配 非连续分类允许一个程序分散地装入不相邻的内存分区但需要额外的空间存放索引导致非连续分配的存储密度低于连续分配。非连续分配管理方式可以根据 分区的大小是否固定分为分页存储管理方式和分段存储管理方式 分页存储管理方式 将内存空间划分为大小相等且固定的页页相对于固定分区分配的划分更小以页作为内存的基本单位这种思想类似于固定分区分配但产生的内部碎片页内碎片要小得多使用页表完成逻辑地址到物理地址的映射页的逻辑地址 页号 页内偏移量也可以只给出总偏移量通过除法和求余得到页号、页内偏移量通过快表TLB作为缓存的方式解决了每次访问内存时都需要进行逻辑地址到物理地址的转换转换速度需要足够快的问题通过多级页表的方式解决了 页表不能太大否则利用率会降低的问题但多级页表会增加查询时间 分页可能产生少量的内部碎片 对于每个页都需要在页表中记录虚拟地址到物理地址的映射无论该页是否有数据分段存储管理方式 使用段表完成逻辑地址到物理地址的映射段的逻辑地址 段号 偏移量和分页存储相比段的大小是不固定的。因此不能通过只给出偏移量通过整数除法得到段号或通过求余得到段内偏移即 分段管理的地址空间是二维的 分段的问题是内存空间被划分为不规整的部分容易出现外部碎片问题 需要基址寄存器和界限寄存器记录内存的起始位置和长度段页式管理方式 作业的地址空间首先被划分为若干逻辑段每段再划分为大小相等的页逻辑地址 段号 页号 页内偏移量 每个段维护一个页表避免了纯分页导致的问题未分配的页都出现在页表里 段的基址寄存器和界限寄存器记录页表的起始位置和长度2 虚拟内存的概念 虚拟内存的实现基于非连续分配的内存管理方式虚拟内存让每个程序都认为自己“独占内存”无需考虑覆盖其它程序内存的情况同时每个程序的内存虚拟内存都对应一个很大的字节数组每个程序的虚拟内存由两部分空间组成给这个程序分配的 内存空间以及分配的 磁盘空间请求的页在内存中命中时可以直接使用不命中时通过页面置换算法将请求页从硬盘空间换入内存空间操作系统完成由虚拟内存地址到 真实内存地址 或者 磁盘地址 之间的映射工作 3 虚拟内存的实现——局部性原理 局部性原理空间局部性、时间局部性虚拟内存基于局部性原理实现程序装入内存时将程序的一部分装入内存即可启动程序。程序执行时访问到不在内存中的信息则操作系统将所需要的部分调入内存然后执行程序同样地将暂时不使用的内容换出到外存。这样用户就能获得比实际内存更大的内存体验可以运行所需内存大于物理内存的程序 4 虚拟内存的页面置换算法 用于决定虚拟内存 换出 哪页即内存满但是需要调入新页时决定从 内存 中调出哪一页到 磁盘的对换区 最佳置换算法 选择被淘汰的页面是以后永不使用的页面或是最长时间内不再被访问的对象 无法实现但可以用于评价其它算法先进先出FIFO页面置换算法最近最久未使用LRU置换算法 为每个页面设置一个访问字段记录页面上次被访问以来经历的时间每次淘汰经过时间最久的页面时钟置换算法CLOCK 简单的 CLOCK 算法仅使用 1 位标志当前页的状态一种改进做法是引入另外的位标志该页是否是脏页从而延迟替换脏页的内容因为替换脏页需要将数据写入外存代价比较大 5 抖动和颠簸 刚换出的页面马上又要换入主存刚换入的页面马上又要换出主存这种频繁的页面调度行为成为抖动如果一个进程换页使用的时间多于执行时间则这个进程处于颠簸发生抖动的主要原因是某个进程频繁访问的页面数高于主存可用的物理页数目 四 文件管理 文件是以计算机硬盘为载体的存储在计算机上的信息集合。系统运行时计算机以进程为基本单位进行资源的调度和分配在用户进行输入、输出时以文件为基本单位文件系统用于实现用户对文件的访问、修稿、保存、维护管理等要求 五 I/O管理 解读I/O多路复用技术 100%弄明白5种IO模型 I/O多路复用详解 1 同步与异步 同步是指用户发起IO请求后需要等待或者轮询内核IO操作完成后才能继续执行异步是指用户线程发起IO请求后继续执行当内核操作完成后会通知线程或者调用用户线程注册的回调函数 2 阻塞与非阻塞 阻塞是指IO操作需要彻底完成后才返回到用户空间非阻塞是指IO操作被调用后立即返回给用户一个状态值 3 I/O模型同步阻塞I/O 同步非阻塞I/O 同步阻塞I/O 在应用调用 recvfrom 读取数据时其系统调用直到数据包到达且被复制到应用缓冲区中或者发送错误时才返回整个请求过程中用户线程是被阻塞的对CPU资源利用不够服务器单线程情况下无法处理并发的请求服务器多线程时为每个请求创建一个线程造成资源浪费 同步非阻塞I/O 如果缓冲区没有数据的话就会直接返回一个 EWOULDBLOCK 错误不会让应用一直等待中。在没有数据的时候会即刻返回错误标识意味着如果应用要读取数据就需要不断的调用 recvfrom 请求直到读取到它要的数据为止用户线程的轮询操作消耗了大量 CPU 资源 4 I/O模型I/O多路复用 I/O 网络I/O多路 多个TCP连接复用 复用一个或少量线程很多个网络I/O复用一个或少量的线程来处理这些文件描述符fd实现思路是由一个线程监控多个网络请求fd文件描述符Linux 系统把所有网络请求以 fd 来标识这样只需要一个或几个线程就可以完成数据状态询问的操作当有数据准备就绪之后再分配对应的线程去读取数据节省大量的线程资源系统提供了一种函数可以同时监控多个 fd 的操作避免为每个 fd 创建一个对应的监控线程。在 Linux 下包括三种函数select, poll, epoll进程将一个或多个 fd 传递给 select阻塞在 select 操作上由 select 侦测多个fd是否准备就绪当有 fd 准备就绪时select 返回数据可读状态应用程序再调用 recvfrom 读取数据 select poll epoll select poll 都采用轮询的方式时间复杂度O(n)随着连接数的增加性能急剧下降select 底层采用数组有最大 fd 数限制1024poll 底层使用链表无最大 fd 限制 epoll 采用回调 callback 而非轮询被动通知而非主动轮询时间复杂度O(1)具有 EPOLLLT默认 和 EPOLLET 两种模式 EPOLLLT系统中一旦有大量无需读写的就绪文件描述符它们每次调用 epoll_wait 都会返回这大大降低处理程序检索关心的就绪文件描述符的效率EPOLLET当被监控的文件描述符上有可读写事件发生时epoll_wait 会通知处理程序去读写。如果这次没有把数据全部读写完(如读写缓冲区太小)那么下次调用 epoll_wait 时它不会通知即只会通知一次直到该文件描述符上出现第二次可读写事件才会通知。这样系统不会充斥大量不关心的就绪文件描述符
http://www.zqtcl.cn/news/2612/

相关文章:

  • 推荐十个网站免费行情软件app网站大全入口
  • 施工员证怎么查询网站有源码如何搭建网站
  • 博客网站需求分析手写字体在线生成器
  • 南通手机建站模板东莞建站网站模板
  • 网站建设答辩ppt模板腾讯云学生机做网站
  • 什么网站做旅行计划尚海整装官网门店电话
  • 湖南网站营销推广设计网站建设无锡海之睿
  • 响应式网站建设北京建设集团网站
  • 凡科手机建站教程中国建筑材料集团有限公司
  • 新网站建设哪里有免费网站空间
  • 免费自助网站建站电商设计师需要掌握什么技能
  • 寿光网站建设优化wordpress和hexo
  • 周浦做网站WordPress换域名更新
  • 网站配色的原理和方法自己做网站好还是购买网站好
  • 施工企业管理协会嘉兴seo外包公司
  • 龙海网站制作公司logo设计欣赏
  • 如何用ps做网站导航网站建设与管理需要什么软件
  • 网站建设教程软件深圳好点的网站建设公司
  • 临沂免费自助建站模板怎么搭建一个自己的网站
  • 网站建设效果图app应用开发
  • 网站开发文档有哪些网站交易
  • 產品定制网站开发公司名字大全20000个三个字
  • 沈阳中小企业网站建设免费无货源代理
  • 北京网站建设制作wordpress用户名的要求
  • 门户网站建设企业怎样免费做网站推广
  • 供灯放生网站开发装潢设计师
  • 常州规划网站做网站上时需要3d预览功能
  • 网站四网合一庐江网站广告怎么做
  • 海口网站建设方案优化pc网站建设意见
  • 工程建设招标中心网站做网站用什么语言最好