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
MATLAB源码集锦-用蒙特卡洛法实现对排队等待问题模拟代码
1
联想G41芯片的主板,如m2622n等的BIOS要升级此90KT23CUS,原厂的BIOS有缺陷,不支持64位系统!刷BIOS方法:进入MaxDOS系统(一般PE自带),插上下载有此BIOS并解压成5个文件在根目录的U盘,输入usbm,再选第一项,等待usb驱动加载完毕,输入dir列出所有文件,输入mb.bat(m2622n),等待BIOS升级完毕即可。
1
android:实现点击按钮,弹出“请稍候...(文本可以自定义)”对话框,加载完了之后,对话框自动消失,提供了两种定时消失的方案,可自行选择。
2024/7/10 15:35:09 1.27MB android框 关闭dialog 安卓Dialog
1
运行Downloadmingw-get-setup.exe,点击"运行",continue等修改环境变量:选择计算机—属性---高级系统设置---环境变量,在系统变量中找到Path变量,在后面加入min-gw的安装目录,如C:\MinGw\bin在开始菜单中,点击"运行",输入cmd,打开命令行:输入mingw-get,如果弹出MinGwinstallationmanager窗口,说明安装正常。
此时,关闭MinGwinstallationmanager窗口,否则接下来的步骤会报错在cmd中输入命令mingw-getinstallgcc,等待一会,gcc就安装成功了。
如果想安装g++,gdb,只要输入命令mingw-getinstallg++和mingw-getinstallgdb
2024/7/10 14:27:42 77KB gcc安装 mingw
1
MediaCreationToolx64升级Windows10安装工具能邦你尽快升级,不用再等待。
2024/6/30 6:19:42 18.74MB 安装下载工具
1
草根百度知道自动问答营销软件包含手机线路执行和PC电脑线路执行,软件可以对指定关键词或者类别进行定时搜索最新的提问,可以限制账号在一天内使用的次数,在登陆账号后自动回答、自动提问、自动采纳、采纳评价、评论回答、赞同回答功能中循环执行,支持自定义文本变量随机组合、指定问题的回答内容、随机间隔等待、自动换IP。
草根百度知道自动问答营销软件软件功能:1.软件采用手机线路和pc电脑线路全自动提问,回答
2024/6/29 10:02:25 1.24MB 网络软件
1
本项目使用IDEA作为IDE,bootstrap(HTML5CSSJS)做前端,springMVC做后端,mySQL做数据库。
UI请使用蓝色和白色为主色调。
不用做得太华丽,做得像一个正常的毕设就行。
首先是登录,分为业主和管理员两种身份。
不同的身份看到的模块数量和内容不一样。
系统管理模块,我设想的是每个人对自己这个账户的基本信息的修改。
这一部分我不太确定,可以适当自由添加一点功能。
楼盘管理,业主只能看到自己的住房信息。
管理员这边,可以显示这个小区有哪些大楼,选择大楼可以看到大楼内部有哪些房间,还可以显示这些房间与哪些业主相关联(即被谁买下),可以查找指定业主的住房。
管理员可以添加、删除、更新业主和房屋的关联(表示入住或者搬离)。
收费管理,初步想法是管理员向业主发出收费通知(物业、水电等),可以向所有业主群发,也可以向指定业主发送。
业主的界面会收到通知,业主线下缴费后线上确认,然后管理员确认即可完成缴费全过程。
停车管理,业主只能看到自己的车位信息。
管理员界面显示小区内所有车位,以及这些车位的状态,无人归属或者归谁所有,可以查找指定业主的车位,或者指定车位的业主。
可以添加、更新和删除业主和车位的关联(表示购买车位、车位转让、车位到期等)。
业主管理,业主看不到这个模块。
业主注册时向管理员发出信号,管理员批准后业主注册正式完成。
该模块可以显示有哪些业主,业主的基本信息。
管理员也可以删除业主的账号(表示业主已经搬离该小区,与小区没有关联了)。
保修和投诉两个模块是类似的,业主在自己这里发出具体的请求,管理员界面可以看到这些请求。
管理员可以接受请求,等待线下任务完成后,业主确认完成后,管理员确认完成,即正式完成,本次保修、投诉结束。
2.96MB maven ssm HTML5
1
通常软件保存用户数据无非两种方法:1.自己建立文件保存用户数据。
2.在注册表中保存数据。
有没有可能利用软件可执行文件自身来保存数据呢?因为软件还在运行,直接修改自身是不可能的。
但有一种间接的方法:先制作一个自身的副本,然后修改副本后退出。
退出时运行副本,副本运行时将自身复制为主后退出。
副本退出时再运行主本,此时主本再删除副本。
整个过程的关键是识别自身是主本还是副本及此次运行要执行的操作。
这些可通过加命令行参数来识别。
如果副本运行时主本还未退出,则复制或删除会失败,所以要等待动作成功完成后再进行下一步。
缺点是退出到副本能运行之间有段时间的,所以窗口会闪一下。
此方法可用于软件自升级,即用下载到的新软件替换自身。
2024/6/23 0:30:12 852KB 升级 自身 保存 数据
1
模拟吃水果的同步模型:桌子上有一只盘子,最多可容纳两个水果,每次只能放入或者取出一个水果。
爸爸专门向盘子中放苹果,妈妈专门向盘子中放橘子,两个儿子专门等待吃盘子中的橘子,两个女儿专门等吃盘子中的苹果。
2024/6/15 9:11:13 1.08MB 操作系统 课程设计 进程同步
1
共 400 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡