zoukankan      html  css  js  c++  java
  • 0510操作系统

    1.覆盖和交换

    • 参考:https://blog.csdn.net/github_36487770/article/details/54934919
    • 覆盖即将用户空间分为一个固定区和若干覆盖区,将经常活跃的部分放在固定区,其余部分按照调用关系分段,先将即将要访问的部分放入覆盖区,需要前再将其他段调入覆盖区,基于一个程序。
    • 交换即将处于等待状态的进程从内存移到辅存,将准备好竞争CPU的进程换入内存。中级调度,多个进程之间进行。交换空间通常独立于文件系统,运行起来会快一点。

    2.工作集和抖动

    • 工作集是指在某段时间内,进程要访问的页面的集合。基于局部性原理,可以用最近访问过的页面来确定工作集。工作集由时间和工作集窗口大小确定。如工作集的窗口大小为5,t1时刻工作集为{1,2,3},t2时刻,工作集为{2,3,4,5,6}
    • 工作集模型是让操作系统跟踪每个进程的工作集,并为进程分配大于其工作集的物理块。落在工作集内的页面需要调入驻留集中,而落在工作集外的页面可从集中换出。若还有空闲物理块,则可以再调一个进程到内存以增加多道程序数。若所有进程的工作集之和超过了可用物理块的总数,则操作系统会暂停一个进程,将其页面调出并将其物理块分配给其他进程,防止出现抖动现象。
    • 抖动即页面置换过程中,出现频繁的换入换出。

    3.FCB

    4.一个文件在磁盘上,怎样去访问它

    首先,操作系统根据文件名a,在系统文件打开表中查找
    第一种情况:
    如果文件a已经打开,则在进程文件打开表中为文件a分配一个表项,然后将该表项的指针指向系统文件打开表中和文件a对应的一项;
    然后再PCB中为文件分配一个文件描述符fd,作为进程文件打开表项的指针,文件打开完成。
    第二种情况:
    如果文件a没有打开,查看含有文件a信息的目录项是否在内存中,如果不在,将目录表装入到内存中,作为cache;
    根据目录表中文件a对应项找到FCB在磁盘中的位置;
    将文件a的FCB装入到内存中的Active inode中;
    然后在系统文件打开表中为文件a增加新的一个表项,将表项的指针指向Active Inode中文件a的FCB;
    然后在进程的文件打开表中分配新的一项,将该表项的指针指向系统文件打开表中文件a对应的表项;
    然后在PCB中,为文件a分配一个文件描述符fd,作为进程文件打开表项的指针,文件打开完成。
    为了保证进程有独立的内存空间:基地址寄存器、界限地址寄存器
    ————————————————
    版权声明:本文为CSDN博主「Frank(Zhiyang-Dou)」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/OOFFrankDura/article/details/87858590

    4.DMA控制器是主设备还是从设备,什么时候做主设备

    5.作业

  • 相关阅读:
    JAVA设计模式---总述篇
    Java中对象创建时的内存分配
    for循环打印空心菱形的新方法
    springcloud2.X通过actuator加载配置无效问题
    golang-错误处理
    golang-字符串
    golang-方法和接口
    golang-结构体与指针
    golang-数组、切片、映射
    golang-流程控制
  • 原文地址:https://www.cnblogs.com/helloworldToDu/p/12859305.html
Copyright © 2011-2022 走看看