- 博客(6)
- 收藏
- 关注
原创 操作系统中的一些基本概念
TSS:任务结构段Task status segmentYield();要完成一个“并发”程序,是不得不借助yield函数的。在程序中表现为当前线程会尽量让出CPU资源来给其他线程执行read();int :iret:eflags:TCB:res:%eax:jmp:EIP,ESP,EBP都是系统的寄存器,里面存的都是一些地址EIP寄存器里存储的是CPU下次要执行的指令的地址...
2020-05-05 09:26:39 5745
原创 L13操作系统之树(过程)
PC置初值,不断的取指执行边烧水边去洗衣服从而造成程序切换:跳转(用栈)用户栈 内核栈 TCB1 TCB2TCB切换完成后内核栈切换再用户栈切换交替的在屏幕打出A B(linux0.01):进程的切换fork就是系统调用执行的就是int 0x80jne 208 :父进程返回就要进行调度了(schedule)因为创建了打出A的进程,那么还需要进行打...
2020-05-05 08:34:49 5363
翻译 内核模块编程之入门(二)—必备知识
模块编程属于内核编程,因此,除了对内核相关知识有所了解外,还需要了解与模块相关的知识。1.应用程序与内核模块的比较为了加深对内核模块的了解,表一给出应用程序与内核模块程序的比较。表一 应用程序与内核模块程序的比较从表一我们可以看出,内核模块程序不能调用libc库中的函数,它运行在内核空间,且只有超级用户可以对其运行。另外,模块程序必须通过module_init()和module-exit...
2020-05-04 21:44:43 5288
原创 操作系统(李治军) L12内核级线程的实现
只有支持了进程才可以管理CPU图:五段论整个过程:从用户栈->内核栈->TCB->TCB完成切换(TCB用switch_to完成TCB的切换完成内核栈的切换)->内核栈切换->再通过iret实现用户栈的切换从用户角度看,就是为了完成从线程1到线程2的切换,内核对于他是隐藏的用户进入内核靠的是中断,靠的是系统调用某个中断指的是:forkfork()创建进程...
2020-05-02 22:55:31 5745
原创 操作系统(李治军) L11内核级线程
**用户级和核心级的区别:根据TCB切换一个栈还是一套栈**进入内核要用中断INT和IRET压栈来使寄存器的状态指令从用户栈和内核栈来回切换ESP:系统分区cur,next当前和下一个线程的TCBCS为代码段寄存器(code segment),IP为指令指针寄存器, 1.找到TCB切换TCB,找到用户栈 2.用中断进入内核找到TCB切换TCB,然后根据TCB完成内核...
2020-05-02 19:42:28 5406
图像生成中的“Classifer guidance、Classifer-free guidance”是什么?
2024-03-20
pycharm运行命令进行debug
2023-04-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人