认识操作系统

计算机硬件结构

  • 计算机系统是由硬件和软件组成的。
  • 现代通用计算机系统是由CPU、内存和若干I/O设备组成。功能上讲:由运算器、控制器、存储器、输入输出设备组成。

处理器

  • CPU的工作周期:提取指令、译码分析、执行指令。CPU内部包含寄存器

存储器

  • 最快的是寄存器,速度与CPU一样快。
  • 然后是Cache高速缓存,大多由硬件控制。
  • 中间是RAM Random Access Memory 内存(主存),存储系统的主力。
  • 再往下是磁盘,硬盘,后面还有磁带等其他存储设备。

I/O设备

  • 控制器:I/O设备的电子部分,协调和控制一台或多台I/O设备的操作。
  • 操作系统总是和控制器打交道,而不直接与外围设备打交道。
  • 驱动程序(设备驱动程序):外围设备种类繁多(显示器、打印机、鼠标、键盘等),控制外围设备需要不同的软件,而这些不同的软件就是设备驱动程序。驱动程序现在常放在操作系统中,使之在核心方式下运行。

3种总线

  • 数据总线:计算机各个部件之间传送数据的通道,宽度由字长而定,32位结构的数据总线应是32根,双向传输数据。
  • 地址总线:为CPU传送地址,可以是存储器地址,也可以是I/O设备控制器中控制寄存器或数据寄存器的地址。
  • 控制总线:在该线上出现的信号是各个模块之间传送数据时所需的全部控制信号。

什么是操作系统

  • 操作系统是软件,而且是系统软件,即它由一整套程序组成。

  • 它的基本职能是控制和管理系统内各种资源,有效地组织多道程序的运行。

  • 它提供众多服务,方便用户使用,扩充硬件功能。

    操作系统是控制和管理计算机系统内各种硬件和软件资源,有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口

操作系统的主要功能

  • 存储管理:内存分配,地址映射,内存保护,内存扩充。

    • 内存分配:为每到程序分配一定的内存空间。
    • 地址映射:把CPU所用的相对地址(逻辑地址)转换成内存的物理地址
    • 内存保护:防止不同程序的内存访问越界,导致数据泄露。
    • 内存扩充:逻辑扩充内存,虚拟存储技术。只把程序的一部分正在使用的数据放在内存,其余部分放在磁盘。
  • 作业和进程管理

    • 作业:用户的计算任务。

    • 进程:程序的执行过程。传统意义上讲,进程是分配资源和在处理机上运行的基本单位。

      • 作业和进程调度。

      • 进程控制:创建进程、撤销进程、封锁进程、唤醒进程等。

      • 进程通信。

        线程:一个进程可以拥有多个线程,每个线程是一个调度和独立运行的单位。

  • 设备管理

    • 缓冲区管理:解决CPU和外设速度不匹配的矛盾。
    • 设备分配:为用户分配外部设备、通道和控制器等。
    • 设备驱动:实现CPU与通道和外设之间的通信。
    • 设备无关性:设备独立性,用户编写的程序与实际使用的物理设备无关,由操纵系统管理。
  • 文件管理

    • 文件存储空间的管理。
    • 文件操作的一般管理:创建、删除、打开、关闭等。
    • 目录管理。
    • 文件的读/写管理和存取控制。
  • 用户接口服务:使用户更加高效地使用系统资源。

    • 程序接口,系统调用接口:系统调用是操作系统内核与用户程序、应用程序之间地接口,它位于操作系统核心层的最外层。
    • 命令行接口(UNIX/Linux中称为shell):在提示符之后用户从键盘上输入命令,命令解释程序接收并解释这些命令,然后把它们传递给操作系统内部的程序,执行相应的功能。
    • 图形用户接口(GUI):图形用户界面,利用鼠标、窗口、菜单、图标等图形用户界面工具来使用计算机。图形用户接口不属于操作系统内核。

操作系统的地位:操作系统紧接着硬件设备,是硬件设备上的第一层软件,和硬件关系极为紧密,在此之上有各种各样的软件。

操作系统的发展历程

操作系统的形成

  • 手工操作阶段。

  • 早期批处理阶段:早期联机批处理,早期脱机批处理。

    早期批处理系统是在解决人机矛盾和CPU与I/O设备速率不匹配这一矛盾的过程中发展起来的。它的出现也促进了软件的发展,出现了监督程序、汇编程序、编译程序、装配程序等。

  • 多道批处理系统:多道程序设计。

操作系统的发展:多道批处理系统缺少人机交互能力,之后出现了分时系统,再之后出现了实时系统。近年来,出现了个人机系统、多处理操作系统、网络操作系统、嵌入式系统、分布式系统、云计算系统等

推动操作系统发展的动力

  • 硬件技术更新。
  • 应用需求扩大。

操作系统的类型

  • 批处理系统
  • 分时系统
  • 实时系统
  • 网络系统
  • 分布式系统
  • 个人及系统
  • 多处理器系统
  • 嵌入式系统
  • 云计算系统

等其他类型……

批处理系统:通常将用户定义的、由计算机完成的工作单位叫作作业,它通常包括一组计算机程序、文件和对操作系统的控制语句。作业通常含有许多步骤叫作作业步。批处理系统需要操作员将用户提交的作业卡片放到读卡机上,通过SPOOLing输入程序及时把这些作业送入直接存取的后援存储器(可以是磁盘)。作业调度程序根据系统的当时情况和各后备作业的特点,按一定的调度原则,选择一个或几个搭配得当的作业装入内存准备运行。内存中多个作业交替执行,当某个作业完成时,系统把该作业的计算结果交给SPOOLing输出程序准备输出,并收回该作业的全部资源。不断重复这样的步骤,使得各作业一个接一个地被CPU执行。批处理系统的特点就是:多道(多个作业)和成批(一批作业直接处理,没有和用户之间的交互)。

分时系统

  • 并行:一个计算机系统中有多个物理部件,它们可以同时工作,如CPU和通道、通道与通道、通道与I/O设备等。两个或以上的事件或活动在同一时刻发生就称作并行。

    ==多道程序环境下,要实现多个程序的并行性就必须有多个CPU,保证它们同一时刻可在不同的CPU上同时执行。==单个CPU无法实现真正意义上的多个程序并行,所以只有单个CPU时采用多道程序分时共享硬件和软件资源的技术。在分时系统中,分时主要是指若干程序对CPU时间的共享。它是通过系统软件实现的。分享的时间单位称为时间片,它往往是很短的,如几十毫秒。这种分时的实现,需要有中断机构和时钟系统的支持。利用时钟系统把CPU时间分成一个个时间片,操作系统轮流把每个时间片分给各个程序,每道程序一次只可运行一个时间片。当时间片计数到时后,产生一个时钟中断,控制转向操作系统;操作系统选择另一道程序并给它时间片,让其投入运行;到达给定时间,在发生中断,重新选程序(或作业)运行,如此反复。

  • 并发:两个或两个以上的程序在一段时间内(宏观上同时,即我们人感觉同时)在同一CPU上执行就称并发

    在分时系统中,利用并发机制实现了一个物理CPU在若干道程序之间的多路复用。

    分时操作系统:Time Sharing Operating System,简称分时系统,工作方式:一台主机连接了若干个终端,每个终端有一个用户在使用。用户交互式地向系统提出命令请求,系统接受每一个用户的命令,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果。用户根据上步结果发出下道命令。一旦出现问题,用户可以随时输入相应命令,通过计算机进行修改或终止运行。

  • 分时系统拥有同时性、交互性、独立性、及时性明显特征。

    • 为用户提供了友好的接口。
    • 促进了计算机的普及应用。
    • 便于资源共享和交换信息。

实时系统:很多领域要求对实时采样数据进行及时立即处理,做出相应的反应,否则可能丢失信息或影响下一批信息的处理。例如卫星发射过程中,必须对出现的各种情况立即进行分析、处理。这种系统是专用的,它对实时响应的要求是批处理系统和分时系统无法满足的。于是人们引入了实时操作系统(Real Time Operating System)。

  • 实时系统是指使计算机能及时响应外部事件的请求,在规定时间内完成该事件的处理,并控制所有设备和任务协调一致工作的操作系统。对外部请求在严格时间范围内做出反应,并有可靠性和完整性。其主要特点是资源的分配和调度首先要考虑实时性,然后才是效率。实时系统应有较强的容错能力。
  • 三种典型的应用形式:
    • 过程控制系统:计算机应用于工业生产的自动控制。
    • 信息查询系统:该系统的主要特点是配有大型文件 系统或数据库,并具有向用户提供简单、方便快速查询的能力。
    • 事务处理系统:该系统的特点是数据库中的数据随时都可能更新,用户和系统之间频繁地进行交互作用。
  • 与分时系统的差别:
    • 交互性:交互性较差,只允许终端操作员访问数量有限的专用程序。
    • 实时性:响应时间更短,要求更严格。
    • 可靠性:实时系统对可靠性要求更高。
  • 实现方式:
    • 硬式实时系统:保证关键任务完成。
    • 软式实时系统:对时间限制稍微弱一点。关键任务比其他任务有更高的优先权,且在相应任务完成之前,它们一直保留着给定的优先权。软式实时系统可与其他类型的系统合在一起,如UNIX系统是分时系统,但可以具有实时功能。

网络操作系统:两大支柱:计算机技术和通信技术。

  • 计算机网络的特征:
    • 分布性:网上节点机可以位于不同地点,各自执行自己的任务。
    • 自治性:网上每台计算机都有自己的硬件设备,独立完成自己承担的任务。
    • 互联性
    • 可见性
  • 网络操作系统:计算机网络通常由多台机器组成,其中一台或几台功能强的机器作为服务器,而其他机器往往是单用户的工作站,称为客户机。服务器提供网络服务或应用服务。计算机网络要有一个网络操作系统对整个网络实施管理,并为用户提供统一的、方便的网络接口。网络操作系统 Network Operating System 一般建立在各个主机的本地操作系统基础之上,其功能是实现网络通信、资源共享和保护,以及提供网络服务和网络接口等。网络操作系统是用户或用户程序与本地操作系统之间的接口,网络用户只有通过它才能获得网络所提供的各种服务。所以,网络操作系统通常运行在服务器上,是基于计算机网络、在各种计算机操作系统上按网络体系机构协议标准开发的软件,包括网络管理、通信、安全、资源共享和各种网络应用。
  • 网络操作系统的特性
    • 接口一致性
    • 资源透明性
    • 操作可靠性
    • 处理自主性
    • 执行并行性:计算机网络中任何一个工作站或通信计算机都称作一个节点。网络操作系统不仅本地实现多道程序并发执行,也可实现网络系统中各个节点机上进程执行的真正并行。

分布式操作系统:它把大量计算机组织在一起,彼此通过高速网络进行连接。分布式系统有效地解决了地域分布很广的若干计算机系统之间的资源共享、并行工作、信息传输和数据保护等问题,从而把计算机技术和应用推向一个新阶段。

  • 分布式操作系统的特点

    • 透明性:用户只需要操作,不知道具体的实现步骤。

    • 灵活性:根据用户需求,灵活地对系统进行修改或者扩充。

    • 可靠性:某一台计算机不能工作了,其他机器代替。包括可用性、安全性、容错性。

    • 高性能:速度快、响应及时、资源利用率高、网络通信能力强。

    • 可扩充性:方便地扩充和缩减其规模。

    • 也有缺点:软件少,通信网络饱和,信息丢失、安全问题等。

  • Distributed Operating System 分布式操作系统 :是网络操作系统的更高形式,保留了网络操作系统的全部功能,又多出了很多的优点。网络操作系统知道整个计算机确切的地址,而分布式系统则不知道计算机的确切地址 ;分布式操作系统负责整个资源的分配,能很好地隐藏系统内部的实现细节。

其他操作系统

  • Personal Computer Operating System 个人机系统,桌面操作系统。
  • Multiprocessor Operating System 多处理器系统,对称多处理系统和非对称多处理系统。多个处理器,共享外部设备。
  • Embedded Operating System 嵌入式系统。
  • Cloud Computing Operating System 云计算系统。

操作系统的特征

  • 并发:宏观上两个或多个活动在同意给定时间间隔中进行。
  • 共享:计算机系统中的资源被多个进程所共用。
  • 不确定性:指操作系统中各种事件发生顺序的不可预测性。这是多道程序系统中进程的并发性和资源共享所带来的必然结果。极端情况下系统会出现死锁现象,即若干进程循环等待他方所占有的资源而造成的无限期僵持下去的局面,操作系统必须对这种情况进行管理。

操作系统结构设计

  • 整体结构:早期操作系统最常用的体系结构。没有结构的,面向过程的,无序的。
  • 层次结构:把系统中的模块分为若干层,其中任一层模块都建立在它下面一层的基础上。UNIX系统就是层次结构,分为三层,最靠近硬件的底层是内核,中间层是shell,最高层是应用层。内核是UNIX操作系统的主要部分,它实现进程管理、存储管理、文件系统和设备管理等功能,从而为核外的所有程序提供运行环境。UNIX核心可视为左右两大部分:左边是文件系统部分;右边是进程控制部分。接近用户应用的模块在上层,贴近硬件的驱动程序模块在下层。处于下层的这些程序模块,也称作操作系统的内核,包括中断处理程序,各种常用设备的驱动程序,以及运行频率较高的模块时钟管理程序、进程调度和低级通信模块以及被许多模块公用的程序、内存管理程序等。
  • 虚拟机结构:在一个操作系统上运行一个虚拟机,虚拟机上可以运行多个操作系统,有效保障系统资源,为软件的研制、开发调试提供了良好的环境,组建虚拟网络,创造出多个理想的工作环境,利用虚拟机软件可以将一台裸机虚拟成一个局域网,并可运行基于C/S(客户机/服务器)、B/S(浏览器/服务器)结构乃至三层结构的软件,从而提升工作效率。核心部分是虚拟机监督程序VMM。虚拟机在一台计算机上模拟多台电脑,对硬件要求较高,主要是CPU、硬盘和内存,任务的执行速度会受到影响。
  • 客户-服务器结构:现代操作系统有一种发展趋势,就是把实现扩展机器功能的这部分代码向上移入更高的层次中,进而尽可能地使操作系统保持最小的核心,因而称作微内核。整个核心的工作是负责处理客户和服务器之间的通信。操作系统被分成几个部分,每个部分只处理系统的一个方面的功能,如文件服务、进程服务、终端服务,或者内存服务,每部分都很小,易于管理。各个服务器都在用户态下运行,因而它们并不直接访问硬件。由于每个服务器以独立的用户态进程方式运行,因此,单个服务器出现故障不会引起整个系统崩溃。客户-服务器结构的一个优点是它适于在分布式系统中应用。如果一个客户与一个服务器通信,它把消息发送给后者,不必知道该消息是在自身机器中处理,还是通过网络把消息发送到远程服务器。在这种情况下,客户对它们的处理都是相同的,即发送请求和收到回答。

操作系统是一个大型软件,其结构复杂、程序庞大、接口众多、并行程度高,而且研制周期长,从提出要求、明确泛起,经结构设计、编码调试直至系统投入运行,往往需要几年的时间。其正确性往往也难以保证。

操作系统初启过程

将操作系统的副本读入内存中,建立正常的运行环境

Inter i386系列初启过程:

  • 硬件检测:PC启动时,首先CPU进入实时模式,开始执行ROM-BIOS起始位置的代码。BIOS首先执行加电自检程序Power On Self Test POST,完成硬件启动,然后对系统中配置的硬件内存、硬盘等进行诊断检测,确定各自在系统中存在,并且处于正常状态。自检工作完成后,按照预先在系统CMOS中设置的启动顺序,ROM-BIOS搜索软盘、硬盘,以及CD-ROM等设备的驱动器,读入系统引导区,通常都是磁盘上第一个扇区,并将系统控制权交给引导装入程序。
  • 加载引导程序:整个硬盘的第一个扇区是整个硬盘的引导扇区,加电后从这个扇区引导,所以它称作主引导记录快Main Boot Recorder。MBR中含有磁盘分区的数据和一段简短的程序,总共512B。引导扇区中的程序及其辅助程序(不包括LILO)采用汇编语言编写,共有三个汇编程序:
    • bootsect.S,Linux引导扇区的源代码,汇编后不能超过512B。
    • setup.S,辅助程序的一部分。
    • video.S,另一部分辅助程序,用于引导过程中的屏幕显示。
  • 初始化内核:辅助程序setup为内核映像的执行做好了准备(包括解压缩)以后,就跳转到0x100000开始内核本身的执行,下面就是内核的初始化过程。初始化过程可以分为三个阶段:第一阶段主要是CPU本身的初始化,例如页式映射的建立;第二阶段主要是系统中一些基础设施的初始化,例如内存管理和进程管理的建立和初始化;最后是对上层部分初始化,如根设备的安装和外部设备的初始化等。
  • 用户登录:在用户态初始化阶段,init程序在每个tty端口上创建一个进程,用来支持用户登录。每个进程都运行一个getty程序,它检测tty端口等待用户使用。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jackey_Song_Odd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值