操作系统-小结

The mind is not a vessel that needs filling , but wood that needs igniting !

1. 运转CPU

程序计数器pc

将pc置一个初值,然后取值执行,cpu就运转起来了

2. CPU没有好好运转

当遇到IO设备的时候,cpu得等待

3. 得让CPU好好运转

当程序1执行到一个程序需要等着别的程序执行,那么就先切到别的程序执行

怎么切换,不就是pc的跳转,利用栈来做

当只有一个栈的时候问题就出现了,

Yield:其作用是当前线程“放弃”执行,让操作系统调度另一线程继续执行

所以就出现了两个栈+两个用户TCB(线程控制块)

4. 一直在用户态那怎么行?

当前的再怎么切都是在用户切,根本进入不了内核

引入了内核栈的切换

5. 实现这个idea

在屏幕上交替的打出A和B

从用户代码开始:

fork是怎么工作的?

  1. 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。
  2. 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。

fork函数的特性?

fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值

  1. 在父进程中,fork返回新创建子进程的进程ID;
  2. 在子进程中,fork返回0;
  3. 如果出现错误,fork返回一个负值;

在fork函数执行完毕后,如果创建新进程成功,则出现两个进程,一个是子进程,一个是父进程。在子进程中,fork函数返回0,在父进程中,fork返回新创建子进程的进程ID。我们可以通过fork返回的值来判断当前进程是子进程还是父进程。

INT就进入了内核

然后就是执行system_call , 接下来就是sys_fork

接着开始copy_process

然后就开始返回

现在是创建好了一个打印A的进程,现在需要返回创建一个打B的进程

和上面类似,只是对应的tss->eip不同

然后父进程开始等待,也就是阻塞,然后调用schedule

总的来说:就是有一个进程,产生出两个打印A和打印B的子进程,对应着打印A和打印B的函数,然后父进程阻塞调用schedule,schedule就开始选择其中的一个进程(根据选择算法),这里也就是打印A的进程,选择完了就切换过去,

也就是把当前cpu中的信息拍到当前父进程中,然后把A的PCB中的tss扣到cpu上

这就切换过去了,而cpu一直就是取指执行,此时eip=100,而eax=0,接下来程序中A就开始不断的执行

6. 怎么打出B

前面是进程A开始不断的打A了,而该怎么交替的打印A和B?

要想打印B,那么必须需要B这个进程执行,也就是得切换B进程对应的PCB,而切换的程序和上面的一样,schedule、switch_to,那么现在需要一个调用,也就是调用到schedule的入口,这个就是调度点,由于是交替打印A和B,那么这个调度点该放到什么位置合适呢?

需要中断,时钟中断

也就是对于A来说,先执行一会,当前的counter=0就调用schedule,和上面一样,也是通过switch_to,把对应的数据进行交换,然后B执行

何为交替?还是中断,因为时钟中断已经做好了,每过一段时间就要做一次时钟中断

这个时候A和B就交替的出现了

(0)

相关推荐

  • 线程切换时CPU在干嘛

    计算机系统中有很多程序员习以为常但又十分神秘的存在:函数调用.系统调用.进程切换.线程切换以及中断处理. 函数调用能让程序员提高代码可复用性,系统调用能让程序员向操作系统发起请求,进程线程切换让多任务 ...

  • 浅析计算机操作系统原理

    浅析计算机操作系统原理

  • 深入分析 Java、Kotlin、Go 的线程和协程

    前言 协程是什么 协程的好处 进程 进程是什么 进程组成 进程特征 线程 线程是什么 线程组成 任务调度 进程与线程的区别 线程的实现模型 一对一模型 多对一模型 多对多模型 线程的"并发& ...

  • 670味中药材作用小结,赠给喜爱中医的你

    至道汇推荐搜索腰痛俗话说用药如用兵.你手里的兵越多,打起仗来越有底气.开方也是一样,你掌握的中药越多,对它越是了解,临床开方用药越有底气.12大类670味中药功效总结,送给热爱中医的你 全文共1900 ...

  • 糖尿病患者肝肾功能不全,8 类降糖药剂量如何调整?一图小结

    糖尿病患者常常会伴有肝肾功能不全的情况,因此在治疗上,我们需要根据患者的肝肾功能调整用药,使患者获益风险比达到最大.那么,各类降糖药的剂量该如何调整呢? 表1. 肾功能分期 图源:作者整理 01 双胍 ...

  • 4月阶段小结。

    回望四月,朦胧胧的,看不清.(碎语随笔,3月阶段小结) 1 .<道德经>从69写道78章,就是9章.原本打算四月底完成的读书笔记写作,还未完成.到现在还剩两章未写.这个进度就是慢读书状态. ...

  • 如果“国产操作系统”崛起,它会免费给我们使用?深度安装,体验

    如果"国产操作系统"崛起,它会免费给我们使用?深度安装,体验

  • 邓铁涛教授常用方剂小结

    发表者:赵东奇 一.治胃.十二指肠溃疡方 [组成]  党参18克,白术12克,云苓15克,柴胡9克佛手片5克,乌贼骨(或瓦楞子(煅))15克,甘草5克. [功效]  健脾益气,舒肝和胃. [主治]  ...

  • 五一档小结|上线影片多、票房赢少输多,电影资本几家欢乐几家愁

    文|杨三喜 刚刚过去的五一假期,中国电影市场迎来了难得的"小阳春".过去数年,受诸多不利因素的影响,中国的电影市场也面临着诸多的挑战,但在刚刚过去的这个五一假期却相当热闹--据统计 ...

  • 五月的花海,周小结

    时间过得好快,对于大四的我来说,更是如此. 从五一到现在,刚刚过去7天,在这期间,看了3本书,写了一篇一万字的研究调查报告.也胡乱写了一些只有自己看得懂的文字(当然,暂时还没考虑发出来). 这段时间和 ...

  • 2021年1~4月投资小结,始终做一个理性的投资人

    原定的一季度投资小结,因为三月底以及整个四月份事情太多,不幸又拖了下来,索性和去年同期一样,再来一次1~4月份投资小结. 统计了一下,截止4月底,今年的股市投资收益大概在19%左右(节后不少持仓个股大 ...

  • 下周天象小结!下周将会是非常美好的一周!!!! -by 古典占星老师吴奕清

    大家好,我是吴奕清. 今天是2021年5月9日星期日. 我们具体来说一说, 下周的重要天象小结. 周一重要天象-- 月木六合 月亮进入金牛座. 如果你最近郁闷了很长时间, 或者说压力比较大. 那你可以 ...