操作系统
文章平均质量分 61
zhanshenggaoyang
这个作者很懒,什么都没留下…
展开
-
什么是内核支持线程,什么是用户级线程
线程的实现可以分为两类:用户级线程(User-LevelThread)和内核线线程(Kernel-Level Thread).后者又称为内核支持的线程或轻量级进程.用户线程指不需要内核支持而在用户程序中实现的线程,其不依赖于操作系统核心,应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程。内核线程: 由操作系统内核创建和撤销。内核维护进程及线程的上下文信息以及线程切换。一个内核线程由于I/O操作而阻塞,不会影响其它线程的运行。Windows NT和2000/XP支持内核线程转载 2011-05-19 19:28:00 · 13164 阅读 · 2 评论 -
生产者-消费者(producer-consumer)问题(二)
生产者-消费者(producer-consumer)问题,也称作有界缓冲区(bounded-buffer)问题,两个进程共享一个公共的固定大小的缓冲区。其中一个是生产者,用于将消息放入缓冲区;另外一个是消费者,用于从缓冲区中取出消息。问题出现在当缓冲区已经满了,而此时生产者还想向其中放入一个新的数据项的情形,其解决方法是让生产者此时进行休眠,等待消费者从缓冲区中取走了一个或者多个数据后再去唤醒它。同样地,当缓冲区已经空了,而消费者还想去取消息,此时也可以让消费者进行休眠,等待生产者放原创 2011-05-21 16:35:00 · 1231 阅读 · 1 评论 -
经典的生产者─消费者问题(一)
经典的生产者─消费者问题同步问题:互斥访问缓冲池不能往“满”的缓冲区中放产品不能从“空”的缓冲区中取产品生产者-消费者问题生产者-消费者(Producer-Consumer)问题是著名的进程同步问题。它描述一组生产者向一组消费者提供消息,它们共享一个有界缓冲池,生产者向其中投放消息,消费者从中取得消息。以下用信号量解决生产者-消费者问题。 假设缓冲池中有n个缓冲区,每个缓冲区存放一个消息,可利用互斥信号量mutex使诸进程对缓冲池实现互斥访问;利用empty和full计数信号量分别表示空缓冲及满缓冲的数原创 2011-05-21 16:35:00 · 2580 阅读 · 1 评论