操作系统

2017-11-25  本文已影响0人  MinoyJet

1、进程和线程

参考:http://blog.csdn.net/zheng548/article/details/54669908

回答这个问题的思路:为什么要有进程-->为什么要有线程-->进程与线程的区别,从定义、角色、资源共享、独立性和开销方面比较。

2、进程间通信

3、信号量的优缺点

4、如何理解线程安全?

5. 进程间同步的方式

临界区、互斥量、事件、信号量四种方式。

总结
  1. 互斥量与临界区的作用非常相似,但互斥量是可以命名的,也就是说它可以跨越进程使用。所以创建互斥量需要的资源更多,所以如果只为了在进程内部是用的话使用临界区会带来速度上的优势并能够减少资源占用量。因为互斥量是跨进程的互斥量一旦被创建,就可以通过名字打开它。
  2. 互斥量(Mutex),信号灯(Semaphore),事件(Event)都可以被跨越进程使用来进行同步数据操作,而其他的对象与数据同步操作无关,但对于进程和线程来讲,如果进程和线程在运行状态则为无信号状态,在退出后为有信号状态。所以可以使用WaitForSingleObject来等待进程和线程退出。
  3. 通过互斥量可以指定资源被独占的方式使用,但如果有下面一种情况通过互斥量就无法处理,比如现在一位用户购买了一份三个并发访问许可的数据库系统,可以根据用户购买的访问许可数量来决定有多少个线程/进程能同时进行数据库操作,这时候如果利用互斥量就没有办法完成这个要求,信号灯对象可以说是一种资源计数器。

6. 死锁原因

产生死锁的原因主要是:
1) 因为系统资源不足。
2) 进程运行推进的顺序不合适。
3) 资源分配不当等。

7. 导致死锁的必要条件

产生死锁的四个必要条件:
1) 互斥条件:一个资源每次只能被一个进程使用。
2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。

8. 进程调度算法

9. Windows内存管理的方式

10. 页面置换算法

上一篇 下一篇

猜你喜欢

热点阅读