操作系统
hanjing_1995
Just do IT
展开
-
【Linux】常见进程调度
1.先来先服务和短作业优先 (1)先来先服务FCFS(first come first served) 算法思想: 是一种最简单的调度算法,该算法既可用于进程调度,又可用于作业调度。当作业调度采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将他们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中,采用FCFS算法,则每次是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。 优缺点原创 2016-06-09 23:17:22 · 282 阅读 · 0 评论 -
可重入函数与线程安全的区别与联系
•概念 重入:即重复调用,函数被不同的流调用,有可能会出现第一次调用还没返回时就再次进入该函数开始下一次调用。 可重入:当程序被多个线程反复执行,产生的结果正确。 如果一个函数只访问自己的局部变量或参数,称为可重入函数。 不可重入:当程序被多个线程反复调用,产生的结果出错。 当函数访问一个全局的变量或者参数时,有可能因为重入而造成混乱,像这样的函数称为不可重入函数。 线性安全:一般来说,一个函数被称为线程安全的,当且仅当被多个并发线程反复调用时,它会一直产生正确的结果。原创 2016-07-17 16:53:34 · 3573 阅读 · 3 评论 -
管道
管道: 管道由内核管理的一个缓冲区,可以抽象为现实生活的一个传输线路。管道的一端连接一个进程的输出,向管道中放入数据,一端连接进程的输入,向管道中取出数据。 管道的内部实现机制: 实际上pipe并没有单独的实现数据结构,他利用了文件在Linux中,而是借助了文件系统的file结构和VFS的索引节点inode。通过将两个file结构指向同一个临时的VFS索引节点,而这个索引节点原创 2016-07-17 18:08:30 · 524 阅读 · 0 评论 -
死锁的产生与解除
死锁不仅会发生多个进程中,也会发生在一个进程中。 死锁的概念: 如果一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么改组进程是死锁的。 死锁的常见表现: (1)多进程死锁:有进程A,进程B,进程A拥有资源1,需要请求正在被进程B占有的资源2。而进程B拥有资源2,请求正在被进程A战友的资源1。两个进程都在等待对方释放资源后请求该资源,而相互僵持,陷入死锁。 (2)单进程死锁:进程A拥有资源1,而它又在请求资源1,而它所请求的资源1必须等待该资源使用完毕得到释放后才可被请求。原创 2016-07-18 18:32:38 · 3324 阅读 · 1 评论