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
这是对应chat客户端的一个服务端,可以实现连接多个客户端,实现多个客户端之间的通信。
https://github.com/jie12366/imitate-qq欢迎fork与star。
2024/4/22 13:38:37 10KB java
1
共轭梯度法matlab程序functionx=cg(A,b)tol=1e-10;r=b+A*b;w=-r;z=A*w;s=w'*z;t=(r'*w)/s;x=-b+t*w;fork=1:numel(b);r=r-t*z;if(norm(r)<tol)return;endB=(r'*z)/s;w=-r+B*w;z=A*w;s=w'*z;t=(r'*w)/s;x=x+t*w;end
2024/4/14 10:26:36 304B 共轭梯度法
1
由于第三方风险纠纷,此脚本停止了共享。
由于第三方风险争议,此脚本停止分享。
自己的收集使用教程具体找作者fork好后,单击设置,机密,新存储库的机密进行添加相关数据参数如下:姓名价值ENABLE_UNICOM直接填写trueUNICOM_APPID填写获取的appidUNICOM_USER手机号UNICOM_PASSWORD服务密码依次添加共四项添加以上数据之后,进入动作,点击绿色长条启用它,进入日常任务daily-task,然后启用工作流程启用工作流返回代码代码处,进入自述文档README.md,随意编辑它,某些删除此处的/*。
再单击下面的绿色提交更改保存。
并发数我改成2了。
2024/2/25 9:57:49 200KB JavaScript
1
当程序运行时,父进程fork出4个子进程。
父进程负责产生消息(每1s产生一个消息),4个子进程负责处理消息。
父子进程之间通过消息队列来传递消息。
父进程需要维护一个本地数据库(格式与共享数据库相同),当生成一个消息时,父进程要同步更新本地数据库。
子进程在处理消息时,根据消息的内容来对共享数据库进行更新
1
AlfredWorkflow.com,Alfred工作流的public集合AlfredWorkflow.com搜索,安装和共享,无需重新创建轮。
--(450)(Alfred2要求)现在你可以使用工作流搜索器搜索工作流。
也可以以Fork或者Star这个repo(/So
2023/11/18 9:33:41 162.42MB 开源
1
C#文件加密解密及备份恢复工具,工具类代码可以打开dll查看,或者可以查看:https://github.com/yuzhengyang/Fork
2023/10/31 6:51:56 4.47MB 文件加密
1
青年党yEarn改进建议(YIP)描述了yEarn平台的标准,包括核心协议规范,客户端API和合同标准。
贡献审查。
通过单击右上角的“Fork”来分叉存储库。
将您的YIP添加到存储库的fork中。
这里有一个。
将请求请求提交到yEarn的。
您的第一个PR应该是最终YIP的初稿。
它必须符合构建强制执行的格式设置标准(主要是标题中的正确元数据)。
编辑将手动检查第一个PR,以获取新的YIP,并在合并之前为其分配一个编号。
确保您在上包含一个带有URL的discussions-to标题,以便人们可以整体上讨论YIP。
如果您的YIP需要图像,则图像文件应包含在该YI
2023/10/9 20:08:22 695KB ethereum defi yearn EthereumHTML
1
本文介绍了三个系统调用函数,分别是fork()、lockf()和IPC中的共享内存机制。
其中fork()函数用于创建一个新进程,返回值表示进程的状态;
lockf()函数用于锁定文件的某些段或整个文件,需要传入文件描述符、锁定方式和锁定大小等参数;
IPC中的共享内存机制可以实现进程间的数据共享。
2023/8/24 15:45:15 45KB 进程间通信
1
实验3进程的管理一、实验内容实验一编写代码,实现以下功能:打印当前所有环境变量的值;
添加新的环境变量NEWENV=first;
修改环境变量NEWENV的值为second;
打印环境变量NEWENV的值。
实验二编写代码实现以下功能:1.打印字符串“helloworld!”2.在打印字符串“helloworld!”前调用三次fork,分析打印结果。
实验三创建子进程1.在子进程中打开文件file1,写入自己的“班级_姓名_学号”,2.父进程读取file1中的内容,并且打印显示。
3.在父进程中获取已经结束的子进程的状态信息,打印该信息,并且打印结束的子进程的进程号。
实验四编写程序实现以下功能:1,在父进程中定义变量n,在子进程中对变量n进行++操作;
并且打印变量n的值,打印子进程pid;
2,在父进程中打印变量n的值,并且打印父进程pid。
3,要求分别用fork和vfork创建子进程。
实验五创建子进程一,在子进程中递归打印/home目录中的内容(用exec系列函数调用第二次实验中的代码完成此功能);
1.子进程结束的时候完成以下功能:打印字符串“Childprocessexited!”打印子进程标识符,打印父进程标识符。
2.创建子进程二,打印子进程运行环境中环境变量“USER”的值,通过exec系列中的某个函数设置子进程”USER”环境变量值为“zhangsan”,并且让该子进程完成以下命令:“ls–li/home”.
2023/7/14 2:39:21 43KB linux
1
共 46 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡