Chinaunix首页 | 论坛 | 博客
  • 博客访问: 340620
  • 博文数量: 88
  • 博客积分: 2011
  • 博客等级: 大尉
  • 技术积分: 885
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-21 14:50
文章分类

全部博文(88)

文章存档

2010年(88)

我的朋友

分类: C/C++

2010-09-10 14:42:06

栈:
英特网Web浏览器将最近访问的站点地址存储在栈中。每当用户访问一个新网页时,这个网页的地址就被压入地址的栈中。浏览器允许用户利用“返回”按钮回到用户上次访问的页面。
队列:
利用队列可以进行多道程序设计。将所有可运行线程存储在队列Q中,当CPU准备向一个线程提供时间片时,对队列执行dequeue操作,获得下一个可用的可运行进程,称这个线程为T。但是,在CPU开始执行T的指令之前,它会启动一个运行在硬件集中的定时器,该定时器被设置成在一段固定的时间后过期。CPU现在在等待直到线程T阻塞自己,或者定时器到期。后一种情况下,CPU停止线程T的执行,并执行enqueue操作,将T置于当前可运行线程队列的队尾。不管是哪一种情况,CPU都将T的程序计数器的当前值存储在T的方法栈的栈顶,并处理从队列Q提取的下一个可用的可运行进程。这样,CPU保证每个可运行线程具有公平的时间共享。因此,利用简单队列数据结构和一个硬件停表,操作系统就能避免CPU被独占。
阅读(1010) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~