![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统(李治军)
马鹏森
这个作者很懒,什么都没留下…
展开
-
L13操作系统之树(过程)
PC置初值,不断的取指执行边烧水边去洗衣服从而造成程序切换:跳转(用栈)用户栈 内核栈 TCB1 TCB2TCB切换完成后内核栈切换再用户栈切换交替的在屏幕打出A B(linux0.01):进程的切换fork就是系统调用执行的就是int 0x80jne 208 :父进程返回就要进行调度了(schedule)因为创建了打出A的进程,那么还需要进行打...原创 2020-05-05 08:34:49 · 5352 阅读 · 0 评论 -
操作系统(李治军) L12内核级线程的实现
只有支持了进程才可以管理CPU图:五段论整个过程:从用户栈->内核栈->TCB->TCB完成切换(TCB用switch_to完成TCB的切换完成内核栈的切换)->内核栈切换->再通过iret实现用户栈的切换从用户角度看,就是为了完成从线程1到线程2的切换,内核对于他是隐藏的用户进入内核靠的是中断,靠的是系统调用某个中断指的是:forkfork()创建进程...原创 2020-05-02 22:55:31 · 5714 阅读 · 0 评论 -
操作系统(李治军) L11内核级线程
**用户级和核心级的区别:根据TCB切换一个栈还是一套栈**进入内核要用中断INT和IRET压栈来使寄存器的状态指令从用户栈和内核栈来回切换ESP:系统分区cur,next当前和下一个线程的TCBCS为代码段寄存器(code segment),IP为指令指针寄存器, 1.找到TCB切换TCB,找到用户栈 2.用中断进入内核找到TCB切换TCB,然后根据TCB完成内核...原创 2020-05-02 19:42:28 · 5397 阅读 · 0 评论 -
操作系统(李治军) L10用户级线程
进程更大,线程更小进程切换=指令切换+资源(内存)(映射表)切换【分治思想】线程切换:避免了进程切换代价:不需要切换资源(映射表)这是多个线程这是因为进程的地址是分离的,所以是线程buffer[1000]是缓冲区Yield()函数实现交替执行启动多个线程,同时出发,交替执行从而使CPU的利用率增加利用两个栈实现切换调用B()的时候把104压入栈,在B()函数返回时出栈...原创 2020-03-11 21:07:01 · 5161 阅读 · 0 评论 -
操作系统(李治军) L9多进程图像-操作系统最重要的图像
@[TOC]操作系统解决一个任务即开启一个进程PCB(process control block)进程控制块‘W’设置成阻塞态Schedule();切换函数pCur:当前进程pNew:新进程getNext():调度FIFO:先入先出此处要实现精细的操作,需要使用汇编代码代码含义:把10100b置给ax把ax置给100地址进程1,2都访问100地址多个进程可以同...原创 2020-03-11 19:52:24 · 5039 阅读 · 0 评论 -
操作系统(李治军) L8 CPU管理的直观想法
CPU的 取指执行给了cpu初地址自动的取值执行给地址在内存中取出来执行50:mov ax,[100]51:mov bx,[101]……依次向下顺序执行管理CPU最直观的方式设置好PC初值就完事了*PC–程序计算器,用于取指令并自动计数计算机中有大概一下几个寄存器:通用寄存器:ax,bx,cx,dx段寄存器:ds,es,ss,cs偏移地址寄存器:sp.ip,bp,si,...原创 2020-03-11 18:00:49 · 5184 阅读 · 0 评论