以大数组模拟内存,以小数组模拟用户文件,以图示的方法清楚的表示出可变分区管理中用户作业在内存中的分配及内存的变化
要求:用户的作业分配是动态的。
1
2017年电子竞赛微电网系统,SPWM全称正弦脉冲宽度调制技术,是用一系列等幅不等宽的脉冲等效正弦波。
SPWM技术是基于“面积相等,效用等效”原理,即形状不同的窄脉冲信号对于时间的积分相等(面积相等),其效果相同。
将半周期的正弦波在时间轴上等分成若干份,这些部分的面积依次呈先增大,再减小的趋势变化,面积两边对称;
若每一部分用对应面积相等,等宽不等幅的矩形脉冲代替,则这些脉冲的高度就会呈现依次先增高,再降低的的趋势,脉冲高度两边对称;
进一步说,如果被等分的正弦波与横轴围成的区域用对应面积相等,等幅不等宽的矩形脉冲代替,则这一系列脉冲的宽度就会依次呈现出先变宽,后变窄,宽度两边对称的有规律的变化
2024/7/19 3:14:58 5.74MB 17年SPWM
1
1、图书管理系统以UNIX系统文件部分系统调用为基础设计一个简易的图书管理系统。
要求实现:图书的录入、查询、借阅、清理、统计等功能、还要实现对每天的借阅情况进行统计并打印出统计报表,操作界面要尽量完善。
图书资料信息必须保存在文件中。
2、信号通信与进程控制(l)进程的创建:编写一段程序,使用系统调用fork()创建两个或多个子进程。
当此程序运行时,在系统中有一个父进程和其余为子进程在活动。
(2)进程的控制:在程序中使用系统调用lockf()来给每一个进程加锁,实现进程之间的互斥。
(3)进程通信:①软中断通信;
②在程序中使用实例signal(SIGINT,SIG_IGN)和signal(SIGQUIT,SIG_IGN)进行通信操作,观察执行结果,并分析原因。
(4)软中断的捕获与重定义。
首先定义一个服务函数function(),然后利用signal(sig,function)系统调用来实现中断的捕获与改道。
(5)使用操作系统保留给用户的信号SIGUSR1和SIGUSR2进行通信。
(6)扩展程序,使之成为信号或事件驱动的应用程序。
3、管道通信利用UNIX系统提供的管道机制实现进程间的通信。
(1)管道通信。
利用pipe()和lockf()系统调用,编写程序,实现同族进程间的通信。
使用系统调用pipe()建立一条管道线;
创建子进程P1、P2、…。
子进程Pi分别向管道各写信息,而父进程则从管道中读出来自于各子进程的信息,实现进程家族间无名管道通讯。
扩展之,使之成为客户/服务器模式,并完成一定的任务(自己定义)。
(2)命名管道通信:利用mkfifo(name,mode)或mknod(name,mode,0)创建一个命名管道,然后利用它和文件部分系统调用实现不同进程间的通信。
改造之,使之成为客户/服务器模式,并完成一定的任务(自己定义)。
4、进程间通信(IPC):消息机制(1)消息的创建、发送和接收使用系统调用msgget(),msgsnd(),msgget(),及msgctl()编制一长度为1K的消息发送和接收的程序。
1)为了便于操作和观察结果,用一个程序作为“引子”,先后fork()两个子进程,SERVER和CLIENT,进行通信。
SERVER和CLIENT也可分别为2个各自独立的程序。
2)SERVER端建立一个Key为175的消息队列,等待其他进程发来的消息。
当遇到类型为1的消息,则作为结束信号,取消该队列,并退出SERVER。
SERVER每接收到一个消息后显示一句“(server)received”。
3)CLIENT端使用key为175的消息队列,先后发送类型从10到1的消息,然后退出。
最后的一个消息,即是SERVER端需要的结束信号。
CLIENT每发送一条消息后显示一句“(client)sent”。
4)父进程在SERVER和CLIENT均退出后结束。
(2)功能扩展:在sever端创建一个服务函数,从而实现C/S通讯要求SERVER每接收到一次数据后不仅仅显示“(server)received”,而是做一些其它事情,比如读取或查询某个文件,或者执行一个shell命令等。
此功能可由设计者自己定义。
在此基础上可以扩展客户端,比如设计一个菜单界面,接收不同的选项,并发送到服务器端,请求对方提供服务。
5、进程间通信(IPC):共享内存机制(1)共享存储区的创建,附接和断接使用系统调用shmget(),shmat(),msgdt(),shmctl(),编制一长度为1K的消息发送和接收的程序。
1)为了便于操作和观察结果,用一个程序作为“引子”,先后fork()两个子进程,SERVER和CLIENT,进行通信。
SERVER和CLIENT也可分别为2个各自独立的程序。
2)SERVER端建立一个Key为375的共享区,并将第一个字节置为-1,作为数据空的标志,等待其他进程发来的消息。
当该字节的值发生变化时,表示收到了信息,并进行处理。
然后再次把它的值设为-1。
如果遇到的值为0,则视为结束信号,取消该队列,并退出SERVER。
SERVER每接收到一次数据后显示“(server)received”。
3)CLIENT端建立一个Key为375的共享区,当共享取得第一个字节为-1时,SERVER端空闲,可发送请求。
CLIENT随即填入9到0。
期间等待Server端的再次空闲。
进行完这些操作后,CLIENT退出。
CLIENT每发送一次数据后显示“(client)sent”。
4)父进程在SERVER和CLIENT均退出后结束。
(2)功能扩展:在sever端创建一个服务函数,从而形成C/S通讯模式要求SERVER每接收到一次数据后不仅仅显示“(server)received”,而是做一些其它事情,比如
2024/7/19 3:04:26 918KB 操作系统
1
最近,Uber软件工程师EvanKlitzke写了一篇文章介绍系统的底层存储由Postgres换成MySQL的原因。
我们先来看看Uber文章里表达了哪些观点。
早期的Uber后台软件由Python写成,数据存储使用Postgres。
后期随着业务的飞速发展后台架构也变化巨大,演进成了微服务加数据平台。
数据存储也由Postgres变成了Schemaless——Uber自主研发的以MySQL做为底层的高可用数据库。
Uber的数据库主要存储的是Trip数据,就是一个叫车订单从下单起,到上车、下车、付费等的全过程跟踪及处理。
从2014年初起,由于业
1
在分布式集群环境中,如何对网格环境中的资源进行有效管理和合理调度至关重要。
采用静态固定资源分配等策略不能适应资源和用户请求的动态变化,容易产生资源碎片,造成网格资源利用率低等问题。
提出了一种基于分类挖掘的资源动态分配模型和算法,通过资源管理服务器中的守护进程,对集群中的任务动作进行分类挖掘,形成分类规则,用以指导资源的动态分配。
实验证明,相比其他分配策略和算法,DRA算法能较好地适应网格环境的变化,具有资源分配利用率高等优点。
2024/7/17 16:55:01 1.75MB 分类挖掘; 网格; 资源; 动态分配;
1
这是一个利用MATLAB符号函数功能,通过手动输入DH参数符号矩阵orExcel文件导入DH参数表从而获得DH矩阵的函数代码。
通过该代码获得的DH矩阵不仅能够再次利用matlab计算所需变化矩阵,甚至还能将具体数值带入求得的转换矩阵中求得DH矩阵具体值。
1
Python练习项目目标编写Python微博爬虫数据来源微博列表请求分析应答报文分析获取微博正文微博正文文本提取获取多页微博反爬虫机制应对处理爬虫完整代码词云图生成成果展示目标用爬虫程序抓取目标用户人民日报的微博文本,通过分析词频,生成直观的词云图。
编写Python微博爬虫注意:微博的接口可能会发生变化,所以请不要盲目照抄,建议按照下述流程独立分析。
数据来源微博移动版网页(点此跳转)内容简洁,便于分析,因此选用移动版网页作为爬取对象。
微博列表请求分析打开目标用户的移动版微博主页:人民日报注意:此处需要退出微博登录来保证请求内容的普适性。
F12打开开发者工具,这里使用的是谷
2024/7/16 20:52:29 218KB python python爬虫 爬虫
1
标准化降水指数(SPI)是一种应用广泛的气象干旱指数,是表征某时段降水量出现的概率多少的指标,适合于月以上时间尺度的干旱监测与评估。
由于SPI采用函数的标准化降水累积频率分布来描述降水量的变化,因此其值在不同地区和不同时间段之间具有可比性[22]。
在计算标准化降水指数时,先将偏态概率分布的降水量进行正态标准化处理,再用标准化降水累积频率分布来划分干旱等级,计算方法可参照气象干旱国家标准。
2024/7/16 7:21:26 19KB 气象
1
Web前端开发者的内功修炼秘笈  4大社区鼎立推荐!  在这个用户体验为王的Web2.0时代,Web应用所涉及的领域越来越广,规模越来越大,需求越来越多样化和复杂化,更新的速度也越来越快。
如何才能让我们的应用应对规模化、多样化、复杂化和快速变化带来的种种问题?编写高质量的、易于维护的Web前端代码似乎是解决这些问题的唯一途径。
  如何才能编写出高质量的、易于维护的Web前端代码?《编写高质量代码:Web前端开发修炼之道》的主要内容围绕Web前端开发的三大技术要素——HTML、CSS和JavaScript展开,深入地讨论了编写高质量的HTML代码、CSS代码和JavaScript代码的方法、技巧、规范和最佳实践,从而为编写易于维护的Web前端代码打下坚实的基础。
希望《编写高质量代码:Web前端开发修炼之道》能帮助大家从一筹莫展的前端维护工作中走出,从此微笑地面对需求的“变化”。
  互联网进入Web20时代以后,Web应用敲响了传统桌面应用的丧钟,它一路摧城拔寨,如今几乎所有的应用都打上了“Web”的烙印。
与之相应的,Web开发技术得到了空前的发展,尤其是前端技术。
近年来,随着用户对使用体验的要求越来越高,前端开发的技术难度越来越大,昔日设计和制作不分的网页设计师这一职位终于“拆分”成了视觉设计师和前端开发工程师两个职位,分别向着艺术和技术的方向纵深发展。
  Web前端开发工程师是一个很新的职业,在国内乃至国际上真正开始受到重视的时间也不超过5年,这类专业人才一直供不应求。
从知识体系上讲,前端开发工程师需要掌握和了解的知识非常之多,甚至可以用庞杂来形容。
作为一名没有太多经验的前端开发工程师,我们应该如何去全面认识自己的工作,如何找准自己的定位,如何从合格成为优秀,最后迈向卓越?《编写高质量代码:Web前端开发修炼之道》尝试从如何编写易于维护的、高质量的Web前端代码的角度给出答案。
  如果你在思考下面这些问题,也许《编写高质量代码:Web前端开发修炼之道》就是你想要的!  作为一名合格的web前端开发工程师,究竟需要具备哪些技能和素质?为什么说如果要精Web前端开发这一行,必须先精通十行?  在Web应用的实现代码中,有哪些技术因素会导致应用难以维护?  高质量的Web前端代码应该满足哪些条件?如何才能提高Web前端代码的可读性和可重用性?  在HTML代码中,为何要使用语义化标签?如何检查你使用的标签是否语义良好?语义化标签时应该注意哪些问题?  如何编写CSS代码和JavaScript代码可以避免团队合作时产生冲突?  如何组织CSS文件才能让它们更易于管理?如何让CSS模块化,从而提高代码的重用率?CSS的命名应该  注意哪些问题?何谓优良的CSS编码风格?  如何在CSS编码中引入面向对象的编程思想?这样做有哪些好处?  原生JavaScript和JavaScript类库之间有何关系?如何编写自己的JavaScript类库?  JavaScript有哪些常见的跨浏览器兼容问题?如何解决这些问题?  如何组织JavaScript才能让代码的结构更清晰有序,从而更易于维护?如何才能编写出弹性良好的JavaScript  代码?编写过程中应该注意哪些问题?  JavaScript的对象编程是如何实现的?如何用面向对象的方式重写原有的代码?  编写高质量的JavaScript代码有哪些实用的技巧?又有哪些常见的问题需要注意?  为了提高Web前端代码的可维护性,我们应该遵循哪些规范?内容简介  《编写高质量代码:Web前端开发修炼之道》以网站重构为楔子,深刻而直接地指出了Web前端开发中存在的重要问题-代码难以维护。
如何才能提高代码的可维护性?人是最关键的因素!于是《编写高质量代码:Web前端开发修炼之道》紧接着全方位地解析了作为一名合格的前端开发工程师应该掌握的技能和承担的职责,这对刚加入前端开发这一行的读者来说有很大的指导意义。
同时,还解读了制定规范和团队合作的重要性。
  《编写高质量代码:Web前端开发修炼之道》的核心内容是围绕Web前端开发的三大技术要素——HTML、CSS和JavaScript来深入地探讨编写高质量的HTML代码、CSS代码和JavaScript代码的方法、技巧、规范和最佳实践,从而为编写易于维护的Web前端代码打下坚实的基础。
这不是一本单纯的“技术”书籍,没有系统地讲解Web前端开发的基础知识,它更专注于“技巧”,探索如何为“技术”提供最佳“技巧”。
  《编写高质量代码:Web前端开发修炼之道》包含了大量的开发思想和原则,都是作者在长期开发实践中积累下来的经验和心得,不同水平的Web前端开发者都会从中获得启发。
尤其是对于那些中初级水平的读者而言,《
2024/7/14 22:05:03 17.5MB Web前端开发 高质量代码 修炼之道 pdf
1
带中文注释可成功编译运行的Linux0.11+Bochs2.62实验环境说明此注释以网上获得的“linux带中文注释的0.11版本”为基础,对照赵炯博士《Linux内核完全注释(0.11)》V3.0版(http://oldlinux.org/download/clk011c-3.0.pdf)编辑而成。
作为对赵博士感谢,以及对Linux初学者的回馈,特发布在CSDN上。
此注释可以在http://oldlinux.org/Linux.old/bochs/提供的Linux-0.11-devel-XXXXXX实验环境下正确编译成功,使用:"makedisk"命令重启Bochs虚拟机后,新编译源码直接生效,便于学习者直接阅读源码,直接进行实验。
注意事项:1、为了使注释版与实验环境上的Linux0.11内核保持一致,达到对应文件可以互换的目的,与Linux0.11原始版本相比,加入了15个系统调用函数(参见include/Linux/sys.h第78-92行。
赵博士原书没有这部分注释,我不敢班门弄斧),其它相关的文件加入了相应的定义。
新加入的代码只有函数体定义,没有具体实现,对其它原始代码没有改变、没有影响。
2、键盘定义改成了美式键盘(原始代码中是芬兰键盘,会导致个别键出问题,调试的时候我曾被迷糊了好久,以为自己把程序搞乱了)。
3、把网上VC版的注释统一改成了“/**/”格式的注释。
经测试,在Linux0.11实验环境中(gcc1.40),只有标准C注释语法可以正常编译。
4、由于《Linux内核完全注释(0.11)》原书版本更新的原因,注释中提到的图、表可能与V3.0版书中不一致。
5、由于代码中加入注释,代码行号发生变化,注释中提到的代码行号会出现不一致,建议对照3.0版查询对应内容。
6、实验方法:请先安装附带的Bochs2.62版安装包,双击Test.bxrc即可启动实验系统,执行命令:sht,即可完成对linuxcn的编译。
7、linux目录中是此实验系统中/usr/src/linux提取出来的不含中文注释的linux0.11源码(此版本比原始的0.11版多15个系统调用函数),linuxcn是加入了中文注释的源码。
8、diskb.img是实验系统与Windows环境下进行文件交换的1.44M软盘映像,执行脚本命令"sht"时会自动从此映像中读取linux.tar、linuxcn.tar包,解包并编译,编译结果在:/usr/root/zw/linuxcn目录下。
为了方便文件交换,建议使用7zip为压缩/解压缩工具(7zip可以直接生成tar包),用WinImage实现Windows环境与软件映像交换文件。
9、实验系统下.profile中加入了几个命令,请读者注意。
10、若实验环境的启动盘被破坏,请用压缩包中的bootimage-0.11-hd覆盖对应文件即可。
11、若实验环境的要命文件系统被破坏,请用压缩包中的hdc-0.11-new.img覆盖对应文件即可。
2014-5-4cyfx2288
2024/7/14 20:51:11 10.28MB 中文注释 成功编译 linux0.11 实验环境
1
共 902 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡