这是一个操作系统进程管理模拟系统,是我根据一位网友的作品修改后的稳定版,其实现了进程的管理(阻塞、运行、等待、完成,采用优先服务的方式)和内存的分配(最佳适配法),功能比较完善,感兴味的朋友可以拿去看看,还望多多指教。
2022/9/8 7:04:19 384KB 操作系统 进程 内存 管理
1
操作系统级CPU目前大部分CPU在同一时间只能运行一个线程,超线程的处理器可以在同一时间处理多个线程,因此可以利用超线程特性提高系统功能。
在linux系统下只有运行SMP内核才能支持超线程,但是安装的CPu数量越多,从超线程获得的功能提升越少。
另外linux内核会将多核的处理器当做多个单独的CPU来识别,例如,两个4核的CPU会被当成8个单个CPU,从功能角度讲,两个4核的CPU整体功能要比8个单核CPU低25%-30%。
可能出现CPU瓶颈的应用有邮件服务器、动态web服务器等。
内存内存太小,系统进程将被阻塞,应用也将变得缓慢,甚至失去响应;
内存太大,导致资源浪费。
虚拟内存可以缓解物理内存的不足,但是虚拟内存的过多占用会导致应用程序的功能明显下降。
在一个32位处理器的linux系统中超过8GB的物理内存都将被浪费,因此要使用更大的内存,建议安装64位的操作系统,同时开启linux的大内存内核支持。
由于处理器寻址范围的限制,在32位linux操作系统上,应用程序单个进程最大只能使用2GB的内存。
可能出现内存瓶颈的有打印服务器、数据库服务器、静态web服务器等。
2022/9/8 0:59:44 27.13MB Linux 优化
1
1)每一个进程有一个PCB,其内容可以根据具体情况设定。
2)可以在界面设定的互斥资源(包括两种:输入设备与输出设备)的数目3)进程数、进入内存时间、要求服务时间可以在界面上进行设定4)进程之间存在一定的同步与互斥关系,可以通过界面进行设定,其表示方法如下:进程的服务时间由三段组成:I2C10O5(表示进程的服务时间由2个时间片的输入,10个时间片的计算,5个时间片的输出)进程间的同步关系用一个段表示:W2,表示该进程先要等待P2进程执行结束后才可以运行因而,进程间的同步与互斥关系、服务时间可以统一用四段表示为:I2C10O5W25)可以在运行中显示各进程的状态:就绪、阻塞、执行6)采用可视化界面,可在进程调度过程中随时暂停调度,查看当前进程的状态以及相应的阻塞队列7)具有一定的数据容错性
2022/9/4 15:42:01 3.66MB 时间片轮转 源代码 C++ MFC
1
死锁的本质是一种僵持状态,是多个主体对于资源的争用而导致的。
理解死锁首先需要对死锁所涉及的相关观念有一个理解。
要理解SQLServer中的死锁,更好的方式是通过类比从更大的面理解死锁。
比如说一个经典的例子就是汽车(主体)对于道路(资源)的征用,如图1所示。
图1.对于死锁的直观理解在图1的例子中,每队汽车都占有一条道路,但都需要另外一队汽车所占有的另一条道路,因而互相阻塞,谁都无法前行,因而造成了死锁。
由这个简单的例子可以看出,发生死锁需要四个必要条件,如下:主体对于资源是独占的,图1中每条汽车道只能跑一队汽车,不能跑第二队。
指主体已经保持至少一个资源,但又提出了新的资源请求,而该资源已被其它主
2022/9/4 0:28:02 477KB 深入浅出SQLServer中的死锁
1
一、语言及软件环境:Java、Windows11,JDK1.8,IntelliJIDEA二、课程设计内容和要求:1、提交一批作业(>=10),按先来先服选择一部分作业(最多5个)进入内存。
2、为每个作业创建一个进程,并分配内存(用户内存:0—1024K,采用可变连续分配方式)。
3、进程调度功能(时间片轮转)。
4、随机阻塞进程,并在一段时间后唤醒进程(选做)。
5、显示相关信息:后备作业队列、内存分配情况、进程信息、完成作业情况。
6、这些功能要有机地连接起来。
三、设计需求分析:1、使用随机数初始化10个作业,放入到后备队列中,然后使用先来先服务(FCFS)进行作业调度,最多只能有5个作业同时进入内存。
2、假设阻塞状态的进程仍然在内存中,则处于就绪、运行,阻塞三种状态的进程总数目最多为5个,即并发进程总数最多为5个,在进程结束后,就会被调出内存,同时继续使用先来先服务算法从后备队列中调入新的作业。
3、在内存中的几个非阻塞状态的进程使用时间片轮转(RR)算法进行调度。
而作业在进入内存之前,先使用初次适应(FF)算法申请内存,从空闲分区链中找到合适的空闲分区并分配。
1
全书内容包括准备开发环境、TCP/IP基本介绍、Windows套接字基础、协议特征、基本TCP套接字编程、基本UDP套接字编程、套接字选项、套接字阻塞模式开发、套接字非阻塞模式开发、Select模型开发、WSAAsyncSelect模型开发、WSAEventSelect模型开发、重叠I/O模型开发和完成端口模型开发。
为使读者深入理解套接字的理论知识,增加实践项目经验,本书最后7章,每章讲解一个具有实践意义的网络应用程序。
在这些实例中包含许多软件开发技术知识,如STL、ADO、多线程、MFC、软件设计模式等。
2021/9/16 23:47:37 49.2MB Windows Sockets 网络开发
1
进程的挂起与激活 挂起:检查要被挂起进程的形态,若处于活动就绪就修改为挂起就绪,若处于阻塞态就修改为挂起阻塞。
被挂起进程的PCB非常驻部分交换到磁盘的对换区。
激活:把进程的PCB非常驻部分调入内存,然后修改形态,挂起等待为等待,挂起就绪为就绪,并分别排入相应队列中。
2020/6/27 10:23:54 815KB 进程实现课件
1
视觉导航是智能采棉机器人的基本技术之一。
棉田组成复杂,存在遮挡和照明,难以准确识别出犁沟,从而提取出导航线。
提出了一种基于水平样条分割的野外导航路径提取方法。
首先,通过OTSU阈值算法对RGBcolor.space中的彩色图像进行预处理,以分割犁沟的二值图像。
棉田图像成分分为四类:犁沟(成分包括土地,枯萎的叶子等)。

),棉纤维,棉的其他器官和外部区域或阻塞物。
通过利用HSV模型的色相和值的显着差异,作者将阈值分为两个步骤。
首先,他们在S通道中分割棉绒,然后在棉线区域之外的区域中在V.通道中分割犁沟。
另外,需要形状学处理以滤出小的噪声区域。
其次,水平样条用于分割二值图像。
作者检测水平样条中的连通区域,并合并由棉毛或附近大连通区域中的亮点引起的孤立的小区域,从而获得犁沟的连通区域。
第三,根据相邻导航线候选之间的距离较小的原理,以图像底部的中心为起点,并从连通域的中点开始依次选择候选点。
最后,作者对连接域的数量进行计数,并计算连接域边界线的参数变化,以确保机器人是否到达了野外或遇到障碍物。
如果没有异常,则使用minimum.squares方法由导航点拟合导航路径。
2017/7/15 20:54:57 896KB otton-Picking Robot Horizontal Spline
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡