热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

20181113

20181113减少访问磁盘次数的措施既然要减少访问,那最理想的情况就是不访问呗,把所有的数据都丢进缓存中, 将缓存变得大速度变快避免随意访问磁盘,于是就 改良磁盘调度算法以上都是

2018/11/13

减少访问磁盘次数的措施

  • 既然要减少访问,那最理想的情况就是不访问呗,把所有的数据都丢进缓存中, 将缓存变得大速度变快
  • 避免随意访问磁盘,于是就 改良磁盘调度算法
  • 以上都是从调用情况的外部入手,指标也得治本,所以还要从自己的内部入手,将自己的目录管理的整齐,尽量不给人家添麻烦

I/O设备

  • 独享设备:在一个用户作业未完成或退出之前,此设备不能分配给其他作业用。所有字符设备都是独享设备。如输入机、磁带机、打印机等。——很明显:需要装驱动。
  • 共享设备:多个用户作业或多个进程可以“同时”从这些设备上存取信息。软硬盘、光盘等块设备都是共享设备。——无需驱动。
  • 虚拟设备:通过软件技术将独享设备改造成共享设备。例如:通过SPOOLing技术将一台打印机虚拟成多台打印机。——实质还是独享设备,需要驱动。

存根程序 驱动程序

  • 存根程序:用来代替被测试的模块所调用的模块,因此存根程序也称为“虚拟子程序”,它利用被它代替的模块的接口,只做尽可能少的数据操作。
  • 驱动程序:指的是设备驱动程序(Device Driver),是一种可以使计算机和设备通信的特殊程序。相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作
  • 底层模块无需编写存根软件,顶层无需编写驱动软件

设备的分配算法

  • 先请求先服务
  • 优先级高者优先
  • 设备分配方式有静态分配和动态分配两种。

进程制约关系

  • 直接制约关系(即同步问题)
    • 是为完成某种任务而建立的两个或多个线程,这个线程需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。进程间的直接制约关系来源于他们之间的合作
  • 间接制约关系(即互斥问题)
    • 当一个进程进入临界区使用临界资源时,另一个进程必须等待。只有当使用临界资源的进程退出临界区后,这个进程才会解除阻塞状态。

CPU现场信息

  • 指令计数器
  • 堆栈的栈顶指针
  • 段表控制寄存器
  • 不属于的:进程的就绪、阻塞、执行等基本状态进程信息保存在PCB中

JCL语言

  • JCL 又称 作业控制语言,是用于描述MVS,OS/390和VSE操作系统上描述作业的语言

FAT表

  • 用来描述文件系统内存储单元的分配状态及文件内容的前后链接关系的表格

FCB

  • 文件控制块:存储文件在磁盘中的相关信息。 为了便于对文件进行控制和管理,在文件系统内部,给每个文件惟一地设置一个文件控制块
  • 这种数据结构通常由下列信息项组成:
    • 文件名——符号文件名,如 files,mydata,ml.c等。
    • 文件类型——指明文件的属性,是普通文件,还是目录文件,特别文件,是系统文件还是用户文件等。
    • 位置——指针,它指向存放该文件的设备和该文件在设备上的位置,如哪台设备的哪些盘块上。
    • 大小——当前文件的大小(以字节、字或块为单位)和允许的最大值。
    • 保护信息——对文件读、写及执行等操作的控制权限标志。
    • 使用计数——表示当前有多少个进程在使用(打开了)该文件。
    • 时间——日期和进程标志,这个信息反映出文件有关创建、最后修改、最后使用等情况,可用于对文件实施保护和监控等。 核心利用这种结构对文件实施各种管理。例如,按名存取文件时,先要找到对应的控制块,验证权限。仅当存取合法时,才能取得存放文件信息的盘块地址

在生产者-消费者问题中,缓冲区是临界资源,在同一时间段只允许一个进程使用它,所以互斥信号量的初始值为1。

客户端-服务器(Client-Server)模式的进程间通信

  • 远程方法调用(Remote Method Invocation)
  • 远程过程调用(Remote Procedure Calls)
  • 套接字编程(Sockets)
  • 消息传递是共享内存的,必须在一个主机。当然不能用于CS模型了

总线传输

  • 猝发(突发)传输:在一个总线周期中,可以传输多个存储地址连续的数据,即一次传输一个地址和一批地址连续的数据
  • 并行传输是在传输中有多个数据位同时在设备之间进行的传输
  • 串行传输是指数据的二进制代码在一条物理信道上以位为单位按时间顺序逐位传输的方式
  • 同步传输是指传输过程由统一的时钟控制

文件分配

  • 对应于文件的物理结构,是指如何为文件分配磁盘块
  • 常用的磁盘空间分配方 法有三种:
    • 顺序分配:顺序分配方法要求每个文件在磁盘上占有一组连续的块。
    • 隐式链接分配:每个文件对应一个磁盘块的链表;磁盘块分布在磁盘的任何地方,除最后一个盘块外,每一个盘块都有指向下一个盘块的指针,这些指针对用户是透明的。
    • 显式链接分配:是指把用于链接文件各物理块的指针,显式地存放在内存的一张链接表中。该表在整个磁盘仅设置一张,每个表项中存放链接指针,即下一个盘块号。 在该表中,凡是属于某一文件的第一个盘块号,或者说是每一条链的链首指针所对应的盘块号,均作为文件地址被填入相应文件的FCB的“物理地址”字段中。由于查找记录的过程是在内存中进行的,因而不仅显著地提高了检索速度,而且大大减少了访问磁盘的次数。由于分配给文件的 所有盘块号都放在该表中,故称该表为文件分配表(File Allocation Table, FAT)。MS-DOS采用的就是这种方式。

线程执行方法

    • yield()暂时交出 cpu 控制权,从 running 状态转为 runnalbe 状态,但是仍有可能被调度
    • sleep()线程指定休眠一段时间
    • wait()在其他线程调用此对象的 notify()或 notifyAll()方法时才能继续执行
    • 线程中 sleep()方法和 yeild()方法的主要区别:
      • sleep()方法会给其他线程运行的机会,而不管其他线程的优先级,因此会给较低优先级的线程运行的机会
        yeild()方法只会给优先级相同的或者比自己高的线程运行的机会.
      • sleep()方法声明抛出 InterruptionException 异常
        yeild()方法没有声明 抛出任何异常.
      • sleep()方法比 yeild()方法具有更高的可移植性.
      • sleep()方法使线程进入阻塞状态
        yeild()方法使线程进入就绪状态.
    • 当前运行的线程可以调用另一个线程的 join()方法,当前运行的线程将转到阻塞状态,直到另一个线程运行结束,它才会恢复运行.
      • join()有两种形式:public void join()和 public void join(long timeout)可 以设置阻塞的时间

2018-11-13


推荐阅读
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 网络编程:其实就是在学socketsocket是什么?翻译过来称为套接字是对底层的TCPIPUDP等网络协议进行封装使得上层的应用程序开发者,不用直接接触这对复杂,丑陋的协议在程序 ... [详细]
  • 本文内容为asp.net微信公众平台开发的目录汇总,包括数据库设计、多层架构框架搭建和入口实现、微信消息封装及反射赋值、关注事件、用户记录、回复文本消息、图文消息、服务搭建(接入)、自定义菜单等。同时提供了示例代码和相关的后台管理功能。内容涵盖了多个方面,适合综合运用。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 在project.properties添加#Projecttarget.targetandroid-19android.library.reference.1..Sliding ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • 代理模式的详细介绍及应用场景
    代理模式是一种在软件开发中常用的设计模式,通过在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象进行访问,从而简化系统的复杂性。代理模式可以根据不同的使用目的分为远程代理、虚拟代理、Copy-on-Write代理、保护代理、防火墙代理、智能引用代理和Cache代理等几种。本文将详细介绍代理模式的原理和应用场景。 ... [详细]
  • 在C#中,使用关键字abstract来定义抽象类和抽象方法。抽象类是一种不能被实例化的类,它只提供部分实现,但可以被其他类继承并创建实例。抽象类可以用于类、方法、属性、索引器和事件。在一个类声明中使用abstract表示该类倾向于作为其他类的基类成员被标识为抽象,或者被包含在一个抽象类中,必须由其派生类实现。本文介绍了C#中抽象类和抽象方法的基础知识,并提供了一个示例代码。 ... [详细]
  • UML 包图
    什么是包包可直接理解为命名空间,文件夹,是用来组织图形的封装,包图可以用来表述功能组命名空间的组织层次。•在面向对象软件开发的视角中&#x ... [详细]
author-avatar
明诺新源研_889
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有