
Windows操作系统
文章平均质量分 90
Windows操作系统
Fisherman_sail
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Windows页面置换算法与文件操作
由于期末临近,实在是没有时间来完成这个实验,在GitHub上找了一个作者的代码进行了阅读,LRU, FIFO, OPT三个算法思路还是比较清晰的,当然OPT是无法跑的,作者用了数据结构的方式来实现这三个方式,读起来有些复杂的,但思路还是很清晰的。如果自己写还是比较难写出来的,这个需要考虑的东西会很多,很容易出错。算法规则特点OPT优先淘汰最长时间内不会被访问的页面缺页率最小,性能最好,但无法实现FIFO优先淘汰最先进入内存的页面实现简单,但性能很差,可能出现Belady异常LRU。原创 2023-06-23 15:31:45 · 1054 阅读 · 0 评论 -
Windows共享内存与死锁
总的来说这个实验还是很难的,花费了很长时间,也遇到了很多问题。首先为什么要映射,这其实是操作系统内存管理的知识,MapViewOfFile就是为了将此内存空间映射到进程的地址空间中。如果两个进程使用相同的DLL,只把DLL的代码页装入内存一次,其他所有映射这个DLL的进程只要共享这些代码页就可以了,如果利用消息机制实现IPC有交换的数据量小、携带的信息少等缺点。原创 2023-05-02 02:12:24 · 1484 阅读 · 1 评论 -
Windows线程间的同步
Windows有四种同步同步方式,分别是临界区、事件、信号量、互斥量。该实验中使用的是设置事件的方式,首先说明一下所需要用到的api。_beginthread:创建线程;CreateEvent:创建一个事件;SetEvent:将事件变为有信号可使用状态;ResetEvent:将事件信号进行复位,变为无信号;原创 2023-03-31 19:05:41 · 804 阅读 · 0 评论 -
Windows多线程编程
以多线程编程的方式完成:1)随机生成一个数组,求其平均值2)随机生成一个数组,求其最大值3)随机生成一个数组,求其最小值上传的multi-thread.c已经以单线程的方式完成了上述工作。请将之更改成多线程完成工作的方式,在数组长度较大的情况下,并观察单线程与多线程方式之间的时间对比。需要使用的api:_beginthread, CreateThread, WaitForSingleObject单进程多进程(由于__declspec(thread)的限制,只能将generateNumbers(原创 2022-12-04 14:10:57 · 2222 阅读 · 0 评论 -
Windows进程间利用管道通信
使用Linux来完成程序,使得可读性比较好,便于分析,利于初步学习。对于Windows报错的原因,我目前觉得原因是“fdpipe[0] = atoi(argv[1])”这里的问题,访问了野指针。argv[1]这个参数究竟能干什么,也不是特别清除,打印出来只是一个数字,但不这样写就无法运行,如果直接用属性中高级设置给argv[1]它一个值也不行。原创 2022-11-20 11:38:54 · 1986 阅读 · 0 评论 -
Windows进程的创建与结束
在运行结果中,观察可返现,“parent process ends”应该是位于启动子进程之后,但却是优先输出;父进程在子进程结束之后才关闭进程。如果直接注释掉WaitForSingleObject(),执行结果没有变化,经过实验,我发现这个API并没有终止线程的功能,只是用来捕捉子线程的执行时间(第二个参数为等待的时间),如果想要实现父进程不等待子进程结束,则需要使用官方提供的ExitProcess或者TerminateProcess来实现(官方建议使用ExitProcess)。原创 2022-11-13 16:34:53 · 2600 阅读 · 0 评论