JavaEE初阶 专项选择练习(3)

本文探讨了线程和进程的概念,强调了线程间的资源共享与独立栈空间。解释了信号量的P、V操作在资源管理中的作用,以及如何避免进程的饥饿状态。还介绍了抢占式调度与静态、动态优先权对进程执行的影响。同时,讨论了用户态线程与内核态线程在操作系统调度层面的区别。最后,提到了虚拟内存如何帮助管理和优化系统资源。
摘要由CSDN通过智能技术生成

 解析:  每个线程都有各自私有的程序计数器、寄存器和栈.


 解析:

  • 信号量的P、V操作,P表示申请一个资源,每次P操作使信号量减1,V是释放一个资源,每次V操作使信号量加1.
  • 信号量表示的是当前可用的资源个数,当信号量为负时,申请资源的进程就只能等待了.所以,信号量是负的多少,就表明有多少个进程申请了资源但无资源可用只能处于等待状态.


解析: 

  • 抢占式保证了高优先级的进程可以直接抢夺低优先级进程的资源,优先运行;
  • 静态优先权是指:在进程运行前就已经分配了固定的优先权,在进程运行的过程中不再对优先权进行调整,这样就导致了低优先级的进程一直得不到资源,即“饥饿”状态!
  • 动态优先权 :在创建进程时所赋予的优先权,是可以随进程的推进或随其等待时间的增加而改变的,以便获得更好的调度性能,该优先权会随着等待的时间增长而增长.


解析: 

  • 如果系统只有用户态线程,则线程对操作系统是不可见的,操作系统只能调度进程;
  • 如果系统中有内核态线程,则操作系统可以按线程进行调度;


解析:  操作系统存在虚拟内存,能够把一部分优先级较低的程序保存到系统硬盘.


 解析:

因为数据库中每条数据被访问的概率近似相等,且缓存空间一般较小不可能存入较多的数据。无法预测所需要查询的数据,如果将被最近访问数据放入缓存用处不大,故而增加缓存起不到很大的作用.


 

解析: 

同一进程间的线程共享的资源有

  •  由于堆是在进程空间中开辟出来的,所以它是理所当然地被共享的;因此new出来的都是共享的(16位平台上分全局堆和局部堆,局部堆是独享的)
  • 全局变量 它是与具体某一函数无关的,所以也与特定线程无关;因此也是共享的
  • 静态变量 虽然对于局部变量来说,它在代码中是“放”在某一函数中的,但是其存放位置和全局变量一样,存于堆中开辟的.bss和.data段,是共享的
  • 文件等公用资源  这个是共享的,使用这些公共资源的线程必须同步。Win32 提供了几种同步资源的方式,包括信号、临界区、事件和互斥体。

独享的资源有

  •  栈 栈是独享的
  •  寄存器  这个可能会误解,因为电脑的寄存器是物理的,每个线程去取值难道不一样吗?其实线程里存放的是副本,包括程序计数器PC

线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。

 


 

 解析:
在具有对换功能的操作系统中,通常把外存分为文件区和对换区.

前者用于存放文件,后者用于存放从内存换出的进程。抖动现象是指刚刚被换出的页很快又要被访问. 为此,又要换出其他页,而该页又快被访问,如此频繁地置换页面,以致大部分时间都花在页面置换上. 撤销部分进程可以减少所要用到的页面数,防止抖动. 对换区大小和进程优先级都与抖动无关.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值