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

破解进入网站后台网站建设规划ppt模板

破解进入网站后台,网站建设规划ppt模板,茂名模板建站哪家好,网站页面设计方案怎么写目录 前言#xff1a; 一、进程优先级#xff1a; 1.通过nice值修改优先级#xff1a; 二、进程切换#xff1a; 三、上下文数据 四、Linux真实调度算法#xff1a; 五、bitmap位图#xff1a; 六、命令总结#xff1a; 总结#xff1a; 前言#xff1a; 我…目录 前言 一、进程优先级 1.通过nice值修改优先级  二、进程切换 三、上下文数据 四、Linux真实调度算法 五、bitmap位图 六、命令总结 总结 前言 我们已经知道了进程的一些属性和进程的各种状态及孤儿进程那么接下来我们就需要知道进程的调度方法和优先级少年开始吧 一、进程优先级 进程优先级也就是获取某种资源的先后顺序。为什么存在本质就是目标资源较少。 在task_struct中的优先级属性是使用几个int类型的变量表示的。优先级数字越小优先级越高也就和我们的排名一样。 为了方便观察我们依旧写一个死循环的程序 当我们想查看一个进程的优先级信息我们可以使用ps -l查看优先级信息 如果你是新开的Xshell窗口需要加上-a选项来查看全局的进程。 1.通过nice值修改优先级  我们一般是通过修改nice值对优先级进行修改的 插一嘴UID是什么 我们平时文件的拥有者所属组都是一个字符串系统做对比的时候所需时间就很多所以OS会对每一个用户维护一个叫做UID的东西。也就是用户ID(USER identify)。我们可以使用ls -ln来查看。-n选项是把能显示成数字的就显示成数字尤其是用户。 所以操作系统使用UID来区分进程是谁启动的所有操作都是进程操作进程会记录谁启动的我而文件会记录下拥有者所属组和对应权限。所以进程去启动相关文件时就会进行UID的对比从而实现权限控制。 进程的优先级是为了竞争CPU资源做准备的。 接下来我们修改进程优先级可以通过指令也可以通过代码修改。 注意这里把nice拉到最大100(原来1767进程PRI为80NI为0) 之后我们再次把nice值拉到最低-100并再次观察结果 可以看到并没有从上次的99加上nice值(-20)得到79而是从最开始的80加上(-20)得到60最终优先级。  为什么nice在可控范围以内呢因为我们使用的是分时OS在进程调度的时候要尽量公平。 优先级的存在是为了更合理竞争相关资源。 二、进程切换 当一个进程的时间片到了进程就要被切换Linux是基于时间片进行调度轮转的。但是一个进程的时间片到了并不一定就跑完了可在任何地方被重新调度切换。 三、上下文数据 当一个进程的时间片到了OS要保留上下文数据当其又被调度的时候OS要恢复上下文数据。 进程在运行的时候会有很多临时数据这些数据都在寄存器中保存。CPU内部的寄存器数据是进程执行时的瞬时状态信息。 我们需要来具体了解几个寄存器如果各位不知道寄存器是什么可以先临时了解就是存放各种信息的东西可以是地址也可以是数据寄存器在CPU上。 其中指令指针寄存器(也称IP、PC程序计数器)它里面记录下次要执行的命令的地址IR(Instruction Register)即指令寄存器存放的是当前执行代码的地址。  进程在运行的时候会有很多临时数据这些数据都在寄存器中保存。CPU内部的寄存器数据是进程执行时的瞬时状态信息只写信息我们可以当做进程的上下文数据。 学过硬件的都知道每个进程不是都需要用到寄存器吗IP寄存器即使这次存储了进程A的下次执行地址但是A的时间片到了进程B执行IP内的内容应该是B下次执行的地址B的时间片到了CPU调度进程A有是怎么找进程A的执行地址呢 我们之前已经讲过PCB(task_struct)里面有一个属性专门保存进程的上下文数据所以在进程A执行完以后寄存器中的内容会存放在PCB的上下文数据中对于B也是所以下次再次调度A就可以根据PBC来恢复上下文继续顺序执行代码。 我们找到第一版本的Linux内核代码其中tast_struct中的一个结构体属性是tss(任务状态段)之后看里面的属性 可以看到PCB中包含tss_struct可以理解为保存上下文数据的属性  这里面可以看到很多熟悉的寄存器。 所以上下文保存在PCB中也就是内存中而不是寄存器中。 我们之前讲到过进程是通过runqueue的task_struct*head找到第一个进程并让CPU调度当时间片结束就放在队尾也就是FIFO(先进先出)的方式。但是我们又讲到了优先级所以实际上进程调度并不是FIFO而是尽量的公平调度。 四、Linux真实调度算法 所以我们来讲解Linux的真实调度算法 runqueue队列中有两个指针维护调度的进程列表。*active活跃的进程列表*expired过期的进程列表。 进程列表是一个指针数组前100个是实时进程我们无法对其改变优先级后40个是分时进程我们可以改变优先级。这也就解释了之前的nice值为什么只有40个。 进程真正的优先级范围为[60,99]而优先级为60对应的数组下标为100。 比如此时有一个优先级为61的进程要放入queue中会61 - 60(startpri) 100 101 如果再来一个进程优先级为61进程则会连接在第一个进程后面 这也就是一个哈希桶但是其实runqueue中包含两个哈希桶维护两个接下来我们来具体了解。 为什么要这样设计比如此时active哈希桶中有一个进程  调度一般分为三种情况 1.运行退出 2.不退出但时间片到了 3.有新进程产生了 第一种情况进程退出程序就释放掉了我们不做讨论。 我们首先讨论有新进程产生。此时有一个问题如果一直有新的进程产生并且创建的新进程优先级一直都是最高的是不是会和之前讲的调度器要非常均衡的进行进程调度所矛盾优先级很高表示一定要一直优先吗优先级很低表示要一直等待吗 这样的话优先级低的进程就永远不会被调度这叫做进程饥饿问题。 所以新进程会放入expired(过期)哈希桶中而且时间片到了的进程也会被放入expired哈希桶中。 所以active哈希桶中进程只会越来越少不会增多。 因为时间片会到进程会退出。 当active为空时OS会将active和expired指针指向的内容交换(swap(active, expired))之后使用相同的调度算法轮转执行。 注意实时进程(0-99)不收调度影响 回到之前queue定义中的nr_active是代表对应当前哈希桶中有多少进程 它决定要不要交换当nr_active为0就需要交换。 五、bitmap位图 而其中的bitmap[5]注意这是一个整形。5个整形也就有5*32160个bit位刚好覆盖140。因为实际上还是从上到下进行遍历看桶是否为空这样还是很慢的。而bitmap就可以快速定位一次查找32个bit位看是否为空。这是位图的概念。 类似这样 for(int i 0; i 5; i) {if (bitmap[i] 0) {continue;}else {//确定在32个比特位那个位置有进程} } 这就是Linux的进程O(1)算法 所有的进程都要有链表连接而且进程可以在调度队列中阻塞队列中。 Linux中的链式结构为双链表结构。但是它并不是我们想象的那样将数据和指针都放在一个节点中其实内核中只有链接字段没有属性字段。 所以一个进程既可以在全局链表中也可以在任何一个其他数据结构中只要加上节点字段即可。  我们进程其实只知道task_struct中的link字段地址那么它是如何找到结构体的起始地址呢这其实就是结构体部分的内容。 struct S {char c1;int a;char c2; };#define OFFSETOF(struct_name,member_name) (int)(((struct_name*)0)-member_name)int main() {struct S s { a, 10, b };//printf(%d\n, OFFSETOF(struct S, c1));//printf(%d\n, OFFSETOF(struct S, a));//printf(%d\n, OFFSETOF(struct S, c2));printf(%p\n, s);printf(%p\n, (struct S*)( (char*) s.a - OFFSETOF(struct S, a)));//这是作者自己实现的OFFSETOF宏各位可以直接使用offsetof宏来求偏移量//使用offsetof要引用stddef.h同文件printf(%p\n, (struct S*)((char*)s.a - offsetof(struct S, a)));return 0; } 这里为什么要转换为char*这样可以按照字节为单位去操作更好的计算。各位可以试试其他类型会发现结果并不符合预期。 六、命令总结 ps -l查看当前系统中进程状态将能显示为数字的都显示为数字。 总结 大佬不愧为大佬这个调度算法和位图的设计简直无敌接下来我们就会讲解命令行参数和环境变量这部分知识也更为炸裂各位敬请期待
http://www.hkea.cn/news/14415831/

相关文章:

  • 怎么做网站简单的又拍云 cdn WordPress
  • 门户网站后台管理模板建设银行 网站设置密码
  • 网站开发页面布局wordpress英文版如何变成中文版
  • 有哪些做场景秀的网站郴州高端网站建设
  • 书店网站建设定位及目标做家教网站的资源是什么
  • 龙之向导免费网站本地搭建wordpress
  • 山西省建设厅网站查询广州建站模板平台
  • 怎么做hs网站三类人不适合学编程plc
  • 镇江市住房与城乡建设局网站网站外链推广工具
  • 北京网站建设公司排名四川省住房和城乡建设局网站
  • 岳阳做网站哪家好南宁建站模板大全
  • 电子商城网站做网站需要成立公司吗
  • 如何在文本上做网站链接符号做网站不用编程
  • 上海企业网站建设推荐wordpress目录手机版
  • 破解进入网站后台建设部网站实名制举报
  • 贵阳城乡建设学校网站大连网站建设案例
  • 中国建设监理协会网站会员专区海南七星彩网站建设
  • 多种网站班玛县网站建设公司
  • 安徽 建设 招聘信息网站网站建设 安庆
  • 网站建设公司计划书软件下载网站模版
  • 百度的网站收录怎么做汉服网页设计作品
  • 测词汇量的专业网站网站建设导入视频
  • 手机免费建立网站济南seo优化公司
  • 做淘宝推广开网站合适全屋定制品牌推荐
  • 建材公司网站建设方案我爱777在线观看
  • p2p网站建设后期维护私人pk赛车网站怎么做
  • 如何做网站豆瓣厦门seo网络推广
  • 免费建站系统下载乐平网站
  • dw做的网站能搜到吗wordpress主题柚子皮zip
  • 兔展在线制作网站html网页制作总结