
操作系统
文章平均质量分 74
_IanXiao
这个作者很懒,什么都没留下…
展开
-
用户级线程
线程的切换在看进程切换前,我们先来看线程的切换吧。 这一篇主要说的是用户级线程的切换。 因为 进程的切换=资源切换+指令执行序列切换。 将资源和指令序列分开看,如果只是从一个执行指令序列切换到另一个执行指令序列,那么这就是线程的切换。线程保留了并发(一个cpu上交替的执行多个程序)的优点,避免了进程切换代价,不需要切资源(映射表),只是切执行指令序列。线程切换的实质就是映射表不变而PC指针变。原创 2016-04-25 19:27:05 · 8275 阅读 · 1 评论 -
内核级线程
内核级线程与用户级线程的区别用户级线程的ThreadCreate(),Yield(),是用户程序,不进入内核。 而内核级线程的ThreadCreate()是系统调用,会进入内核,TCB在内核中,内核管理TCB。Yiled()用户不可见,调度点由系统决定,在内核级线程中Yield就不叫Yield了,进入了内核叫Schedule。内核级线程阻塞后,内核知道这个进程中的其他线程,会切换到其他线程去。所以原创 2016-04-25 22:07:32 · 1307 阅读 · 2 评论 -
CPU调度(进程调度)策略
CPU调度CPU调度是多道程序操作系统的基础。通过在进程之间切换CPU,操作系统可以提高计算机的吞吐率。每当CPU空闲时,操作系统必须按照一定的策略从就绪队列当中选择一个进程来执行。 调度的对象:进程或线程。其方式与原则是一样的。所以经常以进程来说明。 那么说CPU调度<=>进程调度调度算法的设计目标面对客户:调度算法的设计目标应该是用户满意。 面对进程:CPU调度的目标应该是进程满意。而让进原创 2016-04-26 22:33:58 · 13270 阅读 · 0 评论 -
内存的使用
如何让内存使用起来?将程序放入内存中,不断取出指令,CPU执行指令(即能让程序执行起来)。如何让程序装入内存?1.绝对装入方式 2.可重定位装入方式 3.动态运行时装入方式那么首先让程序进入内存 如果是这样不经处理直接装入内存,那么main函数的第一条指令就应该放在物理内存地址40这个地方,否则没法执行。但是万一有其它程序放在这里,那么就不行了,所以实际上应该是找一块空闲内存来放这个程序。原创 2016-08-04 23:05:51 · 735 阅读 · 0 评论 -
对信号量的临界区保护
概念介绍临界区(critical section)在任意时刻只允许一个进程对共享资源进行访问。一次只允许一个进程进入的该进程的那一段代码。对于临界资源的访问必须是互斥进行的,也就是当临界资源被占用时,另一个申请临界资源的进程会被阻塞,直到其所申请的临界资源被释放。而进程内访问临界资源的代码被称为临界区。while(TURE){ 进入区 临界区 退出区 剩余区}信号量原创 2016-09-18 20:59:58 · 1460 阅读 · 0 评论