• DAY1


    ---恢复内容开始---

    1.编程语言的作用及与操作系统的和硬件的关系

       语言就是沟通的桥梁,编程的语言就是人与机器的交流的桥梁,人用编程语言把命令发送给机器,然后机器根据语言反馈应有的结果,操作系统就是编程语言编写出来以让我们达到以简便的方式控制硬件。

    2.应用程序-》操作系统-》硬件

    当我们要运行一个应用程序,操作系统会从内存中提取出相应的软件,然后提供给CPU。

    3.cpu-》内存-》磁盘

    CPU接收到文件把命令下发到内存,最后保存在磁盘内。

    4.cpu与寄存器

    cpu主要处理各种指令,运算等等,寄存器是中央处理器内的组成部份,是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。cpu必须将各种命令、运算结果放在寄存器内,指令才能执行。

    5.内核态与用户态及如何切换

    内核态:当cpu在内核态运行时,cpu可以集中执行集中所有指令,所有的指令包含了运用所有硬件的功能。用户态:用户程序在用户状态下运行,cpu只是运行所有指令集中的一部分子集,其中不包括使用硬件部分功能。当我们要用到一个软件需要一些硬件的操作时,我们就需要从用户态切换到内核态来完成调用硬件的功能,这其中需要系统的调用系统调用陷入内核并调用操作系统,TRAP指令把用户态切换成内核态,并启用操作系统从而获得服务。

    1)用户态切换到内核态的3种方式(摘抄别人linux的一些文章)

    a. 系统调用

    这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作,比如前例中fork()实际上就是执行了一个创建新进程的系统调用。而系统调用的机制其核心还是使用了操作系统为用户特别开放的一个中断来实现,例如Linux的int 80h中断。

    b. 异常

    当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常。

    c. 外围设备的中断

    当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续操作等。

    这3种方式是系统在运行时由用户态转到内核态的最主要方式,其中系统调用可以认为是用户进程主动发起的,异常和外围设备中断则是被动的。

    2)具体的切换操作

    从触发方式上看,可以认为存在前述3种不同的类型,但是从最终实际完成由用户态到内核态的切换操作上来说,涉及的关键步骤是完全一致的,没有任何区别,都相当于执行了一个中断响应的过程,因为系统调用实际上最终是中断机制实现的,而异常和中断的处理机制基本上也是一致的,关于它们的具体区别这里不再赘述。关于中断处理机制的细节和步骤这里也不做过多分析,涉及到由用户态切换到内核态的步骤主要包括:

    [1] 从当前进程的描述符中提取其内核栈的ss0及esp0信息。

    [2] 使用ss0和esp0指向的内核栈将当前进程的cs,eip,eflags,ss,esp信息保存起来,这个

    过程也完成了由用户栈到内核栈的切换过程,同时保存了被暂停执行的程序的下一

    条指令。

    [3] 将先前由中断向量检索得到的中断处理程序的cs,eip信息装入相应的寄存器,开始

    执行中断处理程序,这时就转到了内核态的程序执行了。

    6.存储器系列,L1缓存,L2缓存,内存(RAM)EEPROM和闪存,CMOS与BIOS电池

    L1缓存就是寄存器,用与cpu相同材质制造,与cpu一样快,因而cpu访问它无时延,典型容量是:在32位cpu中为32*32,在64位cpu中为64*64,在两种情况下容量均<1KB。

    L2缓存为高级缓存,主要由硬件控制高速缓存的存取,内存中有高速缓存行按照0~64字节为行0,64~127为行1。最常用的高速缓存行放置在cpu内部或者非常接近cpu的高速缓存中。

    内存此乃存储器系统的主力,内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。

    EEPROM和闪存:这里就要讲到ROM的一些知识点,许多计算机已经在使用少量的非易失性随机访问存储如ROM,在电源切断之后,非易失性存储的内容并不会丢失,ROM只读存储器在工厂中就被编程完毕,然后再也不能修改。ROM速度快且便宜,在有些计算机中,用于启动计算机的引导加载模块就存放在ROM中,另外一些I/O卡也采用ROM处理底层设备的控制,而EEPROM(Electrically Erasable PROM,电可擦除可编程ROM)和闪存(flash memory)也是非易失性的,但是与ROM相反,他们可以擦除和重写。不过重写时花费的时间比写入RAM要多。在便携式电子设备中中,闪存通常作为存储媒介。闪存是数码相机中的胶卷,是便携式音译播放器的磁盘,还应用于固态硬盘。闪存在速度上介于RAM和磁盘之间,但与磁盘不同的是,闪存擦除的次数过多,就被磨损了。

    CMOS与BIOS电池:CMOS,它是易失性的,许多计算机利用CMOS存储器来保持当前时间和日期。BIOS直译过来后中文名称就是"基本输入输出系统"其实,它是一组固化到计算机主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。此外,BIOS还向作业系统提供一些系统参数。系统硬件的变化是由BIOS隐藏,程序使用BIOS功能而不是直接控制硬件。现代作业系统会忽略BIOS提供的抽象层并直接控制硬件组件。BIOS电池用于记录计算机系统的时间,也就是维持系统时钟的准确性,电量不够时,时间会回到出厂日期,还有记录启动时要用的硬件信息,也就是维持CMOS的BIOS信息,CMOS存储器和递增时间的电路由一小块电池驱动,所以,即使计算机没有加电,时间也仍然可以正确地更新,除此之外CMOS还可以保存配置的参数,比如,哪一个是启动磁盘等,之所以采用CMOS是因为它耗电非常少,一块工厂原装电池往往能使用若干年,但是当电池失效时,相关的配置和时间等都将丢失.

    7.磁盘结构,平均寻道时间,平均延迟时间,虚拟内存与MMU

     磁盘结构如图:磁盘中有一个或多个金属盘片,它们以5400,7200或10800rpm(RPM =revolutions per minute 每分钟多少转 )的速度旋转。从边缘开始有一个机械臂悬在盘面上,这类似于老式黑胶唱片机上的拾音臂。信息卸载磁盘上的一些列的同心圆上,是一连串的2进制位(称为bit位),为了统计方法,8个bit称为一个字节bytes,1024bytes=1k,1024k=1M,1024M=1G,所以我们平时所说的磁盘容量最终指的就是磁盘能写多少个2进制位。

    寻道时间:机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻道时间

    平均延迟时间:机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间

    虚拟内存与MMU:许多计算机支持虚拟内存机制,该机制使计算机可以运行大于物理内存的程序,方法是将正在使用的程序放入内存取执行,而暂时不需要执行的程序放到磁盘的某块地方,这块地方成为虚拟内存,在linux中成为swap,这种机制的核心在于快速地映射内存地址,由cpu中的一个部件负责,成为存储器管理单元(Memory Management Unit MMU)。虚拟内存是一般内存的1.5倍,但是最高上限不高于8个G。

    8.磁带:在价钱相同的情况下比硬盘拥有更高的存储容量,虽然速度低于磁盘,但是因其大容量,在地震水灾火灾时可移动性强等特性,常被用来做备份。(常见于大型数据库系统中)

    9.设备驱动与控制器

    设备驱动:是一种可以使计算机和设备通信的特殊程序。相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作,要想调用设备,必须根据该接口编写复杂而具体的程序,于是有了控制器提供设备驱动接口给操作系统。

    控制器:是查找主板上的一块芯片或一组芯片(硬盘,网卡,声卡等都需要插到一个口上,这个口连的便是控制器),控制器负责控制连接的设备,它从操作系统接收命令,比如读硬盘数据,然后就对硬盘设备发起读请求来读出内容。

    控制器的功能:通常情况下对设备的控制是非常复杂和具体的,控制器的任务就是为操作系统屏蔽这些复杂而具体的工作,提供给操作系统一个简单而清晰的接口。

    10.总线与南桥和北桥

    北桥即PCI桥:连接高速设备(即连接一级缓存、二级缓存、主存储器以及CPU设备线路)

    南桥即ISA桥:连接慢速设备(比如:USB,适配器,磁盘等)

    总线是计算机各种功能部件之间传送信息的公共通信干线它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。

    11.操作系统的启动流程

    首先电脑充电,然后启动BIOS程序,开始检测各部件是否运行(如CPU、硬盘、内存等),BIOS再读取CMOS储存器中的参数,然后选择启动设备,然后从启动设备上读取第一次扇形区域的内容(MBR主引导记录,其中464字节为引导信息,46字节为分区信息,最后2个字节为标志位),根据分区信息,读入bootloader启动装载模块,启动操作系统,然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI

    12.应用程序的启动流程

    打开快捷方式后,操作系统通过路径找到源文件并执行,此时CPU由用户态切换到内核态,读取硬盘中应用程序的代码执行,执行后内核态切回用户态,将执行结果显示在操作系统中。

    ---恢复内容结束---

  • 相关阅读:
    Mysql开启日志
    amfphp传递负数的bug
    linux /var/spool/clientmqueue 目录占大量空间
    WinXP SSH连接不上虚拟机的解决方法
    批量数据替换助手V1.0版发布
    也谈反射的应用场景
    反射+特性打造简洁的AJAX调用
    文本处理之利器正则表达式闪亮登场
    关于缩略图的生成与访问策略的一些经验分享
    装饰模式个人的一些理解
  • 原文地址:https://www.cnblogs.com/52forjie/p/7155229.html
Copyright © 2020-2023  润新知