操作系统知识点

一、导论

1.1 什么是操作系统

  1. 操作系统管理计算机硬件的程序,并充当用户和计算机硬件间的中介,主要目标有:

(1)核心目标:运行用户程序
(2)面向用户:更方便使用计算机
(3)面向系统:更高效使用计算机

  1. CPU和设备控制器可以并行工作,并竞争内存。
  2. CPU在内存和本地缓冲之间传输数据。
  3. I/O控制器从设备到本地缓冲之间传输数据。
  4. 协作:控制器通过调用中断通知CPU完成操作。
  5. 操作系统是中断驱动

1.2 多道程序设计和分时

  1. 批处理是指用户将一批作业提交操作系统后就不再干预,由操作系统控制它们自动运行,批处理操作系统分为单道批处理系统和多道批处理系统。(批处理操作系统不具有交互性)。
  2. 单道批处理系统:先把一批作业以脱机方式输入到磁带上,并在系统中配上监督(Monitor),在它的控制下,使这批作业能一个接一个地连续处理。自动从一个运行完的作业转换到下一个作业。(虽然系统对作业的处理是成批进行的,但在内存中始终只保持一道作业,故称为单道批处理系统,因此资源利用率低。)
  3. 多道批处理系统:在内存中同时存在多道作业,在管理程序控制下相互穿插运行。

(1)通过作业调度选中一个作业并运行;
(2)当该作业必须等待时(如执行I/O操作时),切换到另一个作业。
(3)目的:提高CPU的利用率,充分发挥计算机系统部件的并行性。
(4)缺点:作业处理时间长;交互能力差;运行过程不确定

  1. 并行:两个或多个作业在同一时刻运行;并发:两个或多个作业在同一时间间隔内依次运行。
  2. 分时系统是多道程序设计的延伸,基本原理:若某个作业在分配的时间片用完之前计算还没有完成,该作业就暂时中断,等待下一轮;此时,处理机让给另一个作业使用。

(1)时间片:把一段CPU时间按照固定单位进行分割,每个分割得到的时间段称为一个时间片。
(2)由于时间片很短,在终端数量不多的情况下,每个终端都能很快重新获得CPU,使得每个终端都能得到及时响应。
(3)等待周期=时间片 * 终端数量

  1. 分时系统的特点:

(1)多路调制性:多用户联机使用同一台计算机;
(2)独占性:用户感觉独占计算机;
(3)交互性:及时响应用户的请求。

  1. 第一个实用化的分时操作系统:UNIX。实现操作系统的可移植性,实现了硬件无关性。
  2. 下面关于分时系统的叙述错误的是(A)

A.分时系统主要用于批处理作业
B.分时系统中每个任务依次轮流使用时间片
C.分时系统的响应时间好
D.分时系统是一种多用户操作系统

  1. 可以并行运行2个进程的计算机,必须具备的条件有(A、C)。

A.操作系统支持多道程序设计技术
B.程序员实现多进程技术
C.计算机中安装了多个单核处理器或一个多核处理器
D.计算机中安装了一个单核处理器

  1. 多处理器系统:有多个紧密通信的处理器的系统,并行系统&紧耦合系统。优点:增加吞吐量、节省资金、增加可靠性。
  2. 分布式系统:支持分布式处理的软件系统,又称为松耦合系统,通过TCP/IP进行网络通信。
  3. 目前,计算速度最快的计算机系统是集群系统

1.3 操作系统操作和功能

  1. 双重模式操作。

(1)允许OS保护自身和其他系统部件;
(2)用户模式和内核模式;
(3)由硬件提供模式位;
(4)特权指令:可能引起系统崩溃的指令,只能运行在内核模式。

  1. I/O保护

(1)防止用户程序执行非法I/O;
(2)解决方法:所有I/O指令都是特权指令;
(3)用户程序通过系统调用进行I/O操作。

  1. 内存保护

(1)防止内存非法访问;
(2)解决方法:存储保护机制;
(3)硬件支持

  1. 操作系统功能:

(1)进程管理:创建和删除用户和系统进程,提供进程同步、通信机制,死锁处理机制
(2)内存管理:提高内存的分配、回收、地址转换、共享和保护等功能
(3)文件管理:以文件为单位,以目录为组织方式构建文件系统。
(4)I/O设备管理:管理种类繁多的各种I/O设备,解决计算机中信息的输入输出问题。

二、操作系统结构

2.1 操作系统服务和接口

  1. 操作系统以服务形式向程序和用户提供环境执行程序。

(1)基本服务:用户界面、程序执行、I/O操作、文件系统操作、通信、错误检测
(2)增值服务:资源分配、统计、保护和安全

  1. 操作系统服务形式:

(1)系统调用
(2)用户接口
(3)系统程序

  1. 系统调用:面向程序,操作系统服务的编程接口,也是操作系统提供给应用程序的接口。

(1)采用高级语言编写(如C、C++)
(2)程序通过应用程序接口(API)访问
(3)三种常用的APIs:

a. Windows的Win32 API:如ReadFile()方法
b. POSIX系统(即可移植操作系统,包括几乎所有版本的Unix、Linux和Mac OS)的POSIX API;
c. Java虚拟机的Java API。

  1. 系统程序:用户管理、维护操作系统,为用户使用操作系统服务,主要功能:

文件管理、状态信息、文件处理、程序语言支持、程序装入和执行、通信。

2.2 操作系统结构

  1. 简单结构:MS-DOS,规模小,简单,功能有限,混乱,不易维护和更新。如早期Unix,仅系统程序和内核两部分组成。
  2. 层次结构:Electrologica X8,划分为若干层,每层只使用低层次的功能与服务。简化了系统设计与实现,但是每层内容难以定义,效率低。
  3. 微内核结构:CMU的Mach,Windows便于扩充微内核,便于移植,更稳定更安全;但是用户控件和内心控件通信的系统开销增加。解决方案:消息传递机制。
  4. 模块结构:Solaris,Linux,使用面向对象方法,每个核心部件分开,每个模块在需要时被加载到内核。
  5. 混合结构:Mac OS X,采用多种结构获取性能、安全、使用等方面需求。
  6. 以下几种结构中,服务器操作系统较为适合的结构是(C)。

A.简单结构
B.层次结构
C.微内核结构
D.模块结构

2.3 虚拟机

  1. 虚拟机:一种通过软件模拟实现,具有完整硬件系统功能,并运行在一个完全隔离环境中的完整计算机系统。
  2. 虚拟机的实现:

(1)高级语言虚拟机:目的(跨平台),模拟代码执行;
(2)工作站虚拟机:目的(多个操作系统可以同时在一个计算机上使用),面向工作站、PC;
(3)服务器虚拟机:目的(把一个物理计算机虚拟化为多个虚拟机),多用户、多操作系统并存。

  1. Java虚拟机,即Java语言的解释器,特点(平台无关性)。
  2. 工作站虚拟机,即操作系统上的虚拟机,如VMWare Station、Virtual Box、Parallels Desktop等。优点:

(1)同时在一个计算机上使用多个操作系统;
(2)一个宿主操作系统,若干个客户操作系统。

宿主操作系统:安装在硬件上的OS;
客户操作系统:安装在操作系统上的操作系统。
工作站虚拟机安装在宿主操作系统上,在工作站虚拟机中可以安装客户操作系统。

  1. 服务器虚拟机:将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器。

常用模式:
(1)一虚多:一台服务器虚拟成多台服务器虚拟机;
(2)多虚一:多个独立物理服务器虚拟为一个服务器虚拟机。
优点:
(1)安全性好
(2)资源共享
(3)可扩展性好
(4)便于隔离
(5)性价比高

  1. 安装在裸机上的虚拟机是(服务器虚拟机)。
  2. 一个物理计算机上的各个虚拟机的资源可以动态调配。

三、进程

3.1 进程概念

  1. 进程是程序的一个实例,是程序的一次执行。
  2. 进程包括:代码(Text)和当前活动。当前活动又包含:

(1)程序计数器(PC):指向当前要执行的指令(地址);
(2)堆栈(Stack):存放函数参数、临时变量等临时数据;
(3)数据(Data):全局变量、处理的文件;
(4)堆(Heap):动态内存分配

  1. 进程VS程序

(1)一个程序可以对应一个或多个进程;
(2)一个进程可以对应一个或多个程序;
(3)程序是进程的代码部分;
(4)进程是活动实体,程序是静止实体(本质区别);
(5)进程在内存,程序在外存。

  1. 进程状态:新建、运行、等待(进程等待某些事件发生)、就绪(进程等待分配处理器)、终止
    在这里插入图片描述
  2. 进程控制块(PCB),包含同进程有关的信息,包括:进程状态、程序计数器、CPU寄存器、CPU调度信息、内存管理信息、计账信息、I/O状态信息。
  3. Windows PCB

(1)每个Win32进程都有一个执行体进程块EPROCESS,包括:PID、PCB、Access Token、Base Priority、句柄表、指向PEB的指针、默认和处理器集合等。
(2)Windows的PCB称为内核进程对象KPROCESS
(3)执行体进程对象EPROCESSKPROCESS位于内核空间。
(4)进程环境块PEB位于用户空间。

  1. 进程上下文都不是全部都需要保存到FCB中。
  2. 在具有三级调度的OS中,就绪状态分为内存就绪状态、外存就绪状态;阻塞状态也分为内存阻塞状态和外存阻塞状态。 笼统的说法可以说进程就是在内存中,如我们的任务管理器就可以看见在运行的进程,运行状态的进程一定在内存中

3.2 进程操作

  1. 父进程创建子进程。

对于资源共享而言,存在三种情况:
(1)父进程子进程共享所有的资源;
(2)子进程共享父进程资源的子集;
(3)父进程和子进程无资源共享。
对于执行,存在两种情况:
(1)父进程和子进程并发执行;
(2)父进程等待,直到子进程终止。

  1. 原子操作:不会被打断的操作,一旦开始就一致运行到结束,中间不会有任何上下文切换。原子性必须需要硬件的支持。
  2. Unix中,通过fork()系统调用创建新进程,在fork()用一个新程序替代进程的内存空间后,采用exec()系统调用。(Windows中用CreateProcess创建进程)。
  3. 下列各项工作步骤中,( A )是创建进程所必需的步骤。

A.建立一个PCB
B.作业调度程序为进程分配CPU
C.为进程分配内存等资源
D.将PCB链入进程就绪队列

  1. 操作系统对进程的管理和控制都是操作系统的主动行为。(×)
  2. Windows系统和Linux系统创建进程方式各有什么特点?

(1)Windows的进程创建采用Windows API函数CreateProcess();它在进程创建时要求将一个特定程序加载到子进程的地址空间;在创建过程中它需要传递至少10个参数;
(2)Linux的进程创建通过fork()系统调用;子进程继承了父进程的地址空间;fork()不需要传递任何参数;

  1. 进程操作除了进程创建与进程撤销外,还可以有哪些操作?

进程执行,进程通信,进程等待,进程优先级控制,进程阻塞,进程唤醒,进程终止,进程切换等等。

3.3 进程通信

  1. 独立进程:不会影响另一个进程的执行或被另一个进程执行影响。
  2. 协同进程:可能影响另一个进程的执行或被另一个进程执行影响。
  3. 进程协同的优点:信息共享、加速运算、模块化、方便。
  4. 进程间通信(IPC):用于进程通信的机制,同步期间的活动,一般存在两种基本模式:共享内存、消息传递。
  5. 共享内存:一块内存存在多个进程间共享,一般用于大数据通信,是速度最快的进程通信方式。实现手段有:文件映射、管道、剪贴板。如生产者-消费者模式。
  6. 消息传递:消息传递是在微内核中的应用(由于远程通信无法采用共享内存)。一般执行两个操作:发送固定或可变大小消息、接收。若P与Q要通信,需要建立通信连接(物理的或逻辑的)并通过send/receive交换消息。
  7. 直接通信:

进程必须显式命名:
(1)send(P, message)——向进程P发消息
(2)receive(Q, message)——从进程Q收消息。
通信连接的特性:
(1)连接自动建立
(2)连接精准地与一对通信进程相关
(3)在每一对通信进程间存在一个连接
(4)连接可单向,但通常双向

  1. 间接通信:

消息导向至信箱并从信箱接收:
(1)每一个信箱都有一个唯一的ID
(2)仅当共享一个信箱时进程才能通信。
通信连接的特性:
(1)仅当进程共有一个信箱时连接才能建立
(2)连接可同多个进程相关
(3)每一对进程可共享多个通信连接
(4)连接可单向或双向
操作:
(1)创建新的信箱
(2)通过信箱发送和接收消息

a. send(A, message)——发送消息到信箱A
b. receive(A, message)——从信箱A接收消息
c. 注意:发送信息者的进程名应存放在信件中。
(3)销毁信箱

  1. 消息传递可采用阻塞或非阻塞:

阻塞-同步:

(1) 阻塞send:发送进程阻塞,直到消息被接收
(2) 阻塞receive:接收者进程阻塞,知道有消息可用
非阻塞-异步:
(1) 非阻塞send:发送进程发送消息并继续操作
(2) 非阻塞receive:接收者收到一个有效消息或无效消息

  1. 同步和异步消息传递方式的优缺点

同步信息传递:
优点:有利于对流程进行控制,稳定性很高,避免很多不可掌控的意外情况 。
缺点:效率低,比较耗费时间,会有等待耗费。
异步信息传递:
优点:执行效率高,节省时间。
缺点:进程控制的稳定性下降,占用更多资源,不利于对进程的控制。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ThetaQing

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

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

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

打赏作者

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

抵扣说明:

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

余额充值