![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
波点兔
这个作者很懒,什么都没留下…
展开
-
【操作系统实验】fork函数理解
一、fork()函数的作用开辟出一块内存空间二、父进程与子进程被复制的进程是父进程,复制出来的进程叫子进程三、注意事项1.父进程的进程号一定小于子进程(因为肯定先有了父进程,才会有子进程)2.父进程调用fork()函数的返回值是子进程号3.子进程调用fork()函数的返回值是04.由2,3,可以通过函数返回值来区分是父进程还是子进程四、实验要求:编写一段程序,使用系统...原创 2019-09-04 19:42:22 · 1096 阅读 · 0 评论 -
操作系统 进程互斥-硬件方案
文章目录1、关中断2、上锁与开锁3、测试并设置指令4、对换指令1、关中断原则:进程进入临界区时关中断,退出临界区时开中断。为什么要采用关中断?关中断是指在此中断处理完成前,不处理其它中断,这样就可以保证进程不被中断,从而保证了互斥性(不允许两个以上的共享该资源的并发进程同时进入临界区称为互斥),因此采用关中断。缺点?①将禁止一切中断的权利赋予普通用户,若用户没有开放中断,系...原创 2019-09-29 17:37:28 · 410 阅读 · 0 评论 -
轮转调度算法和动态优先级调度算法
在多道程序环境下,内存中着多个进程,进程数目往往多于处理机数目,这时候我们就要针对该问题设计某种算法,动态地将处理机分配给处于就绪状态的一个进程。进程的调度算法有很多,例如先来先服务调度算法(FCFS),短作业优先算法(SJF),时间片轮转算法(RR)和优先级算法,这里我将通过代码的方式主要介绍轮转调度算法(RR)和动态优先级调度算法. ...转载 2019-09-26 10:08:03 · 2777 阅读 · 1 评论 -
操作系统之处理器调度(作业调度)
文章目录1、高级调度2、中级调度3、低级调度4、作业的管理与调度4.1 输入状态4.1 后备状态4.1 进程调度(三态模型)4.1 完成状态1、高级调度选项结果调度对象作业调度时机需要从后备队列中选择一个作业2、中级调度选项结果调度对象进程(因为线程不能挂起)调度时机发生挂起3、低级调度选项结果调度...原创 2019-09-22 10:32:18 · 347 阅读 · 0 评论 -
操作系统之作业调度算法以及衡量属性
文章目录1、先来先服务算法(FCFS)2、最短作业优先算法(SJF)3、最短剩余时间优先算法(SRTF)4、最高响应比优先算法(HRRF)5、优先级调度算法6、轮转调度算法(RR)7、多级反馈队列调度算法1、先来先服务算法(FCFS)选项结果是否剥夺非剥夺式考虑公平性优点①实现简单,用一个优先队列即可 ②公平性缺点和作业到达时间有关,性能差2...原创 2019-09-22 10:07:34 · 787 阅读 · 0 评论 -
进程的阻塞、唤醒、挂起、激活
进程阻塞步骤①将现场信息保存至PCB②修改PCB内容,运行态->等待态③将其加入等待队列进程唤醒步骤①从相关等待队列中移出②修改PCB内容,->就绪态③将其加入就绪队列进程挂起步骤①活跃就绪->静止就绪,活跃阻塞->静止阻塞进程激活①PCB非常驻部分调入内存②改状态③加入相关队列...原创 2019-09-16 09:46:37 · 1434 阅读 · 0 评论 -
进程和线程的主要区别(总结)
线程与进程的区别 进程与线程的区别是很重要的一个知识点,也是面试中经常问到的。网上转载博客痕迹明显,且千篇一律。我简单提取下,记录下来,希望能帮到你。另外在 LeetCode 上也有关于此问题的讨论,可以直接浏览“Read...转载 2019-09-12 11:48:49 · 2666 阅读 · 0 评论 -
进程的用户栈和核心栈
进程是程序的一次执行过程。用剧本和演出来类比,程序相当于剧本,而进程则相当于剧本的一次演出,舞台、灯光则相当于进程的运...转载 2019-09-11 17:09:24 · 1895 阅读 · 0 评论 -
进程虚存映像剖析
共享内存是由内核出于在多个进程间交换信息的目的而留出的一块内存区(段)。如果段的权限设置恰当,每个要访问该段内存的进程都可以把它映像到自己的私有地址空间中。如果一个进程更新了段中的数据,其他进程也立即会看到更新。由一个进程创建的段,也可以由另一个进程读写。每个进程都把它自己对共享内存的映像放入自己的地址空间。代码区:存储功能代码,函数名所在的区域只读常量区:存放字符串常量,以及con...原创 2019-09-11 16:58:04 · 195 阅读 · 0 评论 -
Linux进程核心栈结构剖析
栈结构描述Linux在栈底用一个数据结构指向slab中为之分配的task_struct,而这个数据结构正是结构体thread_info,它的一个成员是指向task_struct的指针。为什么要是这种栈结构呢?①把task_struct结构与内核栈放在一起的好处:内核中大部分处理进程的代码都是通过进程描述符进行的。因而current宏查找到当前进程的描述符的速度就尤为重要。对于寄存器...原创 2019-09-11 16:10:47 · 477 阅读 · 0 评论 -
操作系统概述与进程了解(导图)
原创 2019-09-09 21:23:38 · 100 阅读 · 0 评论 -
进程的基本状态及转换和阻塞及挂起的理解
概念描述:就绪状态 :一个进程获得了除处理机外的一切所需资源,一旦得到处理机即可运行,则称此进程处于就绪状态。执行状态:当一个进程在处理机上运行时,则称该进程处于运行状态。阻塞状态:一个进程正在等待某一事件发生(例如请求I/O而等待I/O完成等)而暂时仃止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。挂起状态:由于IO的速度慢于CPU的运算速度,经常出现CPU等待...转载 2019-09-09 21:12:10 · 2641 阅读 · 0 评论 -
进程上下文切换与处理器上下文切换
文章目录1 进程上下文与中断上下文2 进程上下文切换2.1 概念2.2 步骤3 处理器模式切换3.1 概念3.2 步骤4系统任务与用户进程1 进程上下文与中断上下文进程上下文所谓的“进程上下文”,就是一个进程在执行的时候,CPU的所有寄存器中的值、进程的状态以及堆栈上的内容,当内核需要切换到另一个进程时,它需要保存当前进程的所有状态,即保存当前进程的进程上下文,以便再次执行该进程时,...原创 2019-09-09 21:00:07 · 1922 阅读 · 0 评论 -
【操作系统实验】进程扇和进程链
fork()函数创建子进程以后,fork拷贝了父进程的内存映像,这样子进程就收到一份父进程地址空间的拷贝,之后子进程与父进程分别在自己的地址空间执行相同的指令。 fork()的返回值是允许用来区分父进程还是子进程的。函数向父进程返回子进程的进程ID,向子进程返回0,这样就可以在代码中加以区分,是创建子进程以后让父子进程执行不同的操作了。 今天尝试的是通过循环调...转载 2019-09-04 19:56:54 · 279 阅读 · 0 评论 -
信号量机制解决生产者--消费者问题
以图片的形式总结了下信号量机制解决生产者--消费者问题的过程.其中 涉及到了信号量,PV原语,死锁等关键字。 稍微解释下PV原语:PV原语就是一组不可分割的原子操作. 其他两个关键在在图片中有说明.&nbs...转载 2019-09-29 18:26:43 · 393 阅读 · 0 评论