我是靠谱客的博主 轻松手套,最近开发中收集的这篇文章主要介绍操作系统 | 计算机系统概述,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在这里插入图片描述

1.1 操作系统的基本概念

  • 并发和共享是操作系统两个最基本的特征,虚拟和异步也是。
  • 操作系统管理计算机硬件软件资源,如CPU,内存,外存,不管理源程序。
  • 系统软件包括:操作系统、数据库管理系统、语言处理程序、服务性程序、标准库程序。
  • 并发性是指若干事件在同一事件间隔内发生,而并行性是指若干事件在同一时刻发生。
  • 操作系统主要向用户提供命令接口和程序接口(系统调用),此外还提供图形接口:其实图形接口其实是调用了系统调用而实现的功能。
  • 操作系统位编程人员提供的接口是程序接口,即系统调用。
  • 库函数是高级语言中提供的与系统调用对应的函数(也有些库函数与系统调用无关),目的是隐藏“访管”指令的细节,使系统调用更加方便抽象。但是库函数属于用户程序而非系统调用,是系统调用的上层。
  • 系统调用是由操作系统提供给用户的,它只能通过用户程序间接使用。它是操作系统位应用程序使用内核功能所提供的接口。
  • 系统调用的目的是请求系统服务。
  • 操作系统与用户通信接口通常包括:shell、命令解释器、广义指令,不包括缓存管理命令。广义指令就是系统调用命令。命令解释器属于命令接口。shell是命令解释器,也属于命令接口。操作系统不提供管理系统缓存的系统调用。
  • 引入多道程序设计后,程序执行就失去了封闭性和顺序性。程序的执行因为共享资源以及相互协同的原因产生了竞争,相互制约。考虑到竞争的公平性,程序的执行是断续的。顺序性是单道程序设计的基本特征。
  • 库函数与系统调用的区别和联系
    库函数是语言或应用的一部分,可以运行在用户空间中。而系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在内核空间中,而且许多库函数都会使用系统调用来实现功能。未使用系统调用的库函数,其执行效率通常比系统调用高。因为使用系统调用时需要上下文的切换和状态的转换(由用户态转向核心态)

1.2 操作系统的发展与分类

  • 批处理系统:允许多个用户将若干作业提交给计算机系统集中处理的操作系统;脱机工作;多道程序并发执行;交互能力差。
  • 分时操作系统:允许多个用户以交互的方式使用计算机的操作系统;交互性强、响应及时。
  • 实时操作系统:计算机系统能及时处理由过程控制反馈的数据;可靠性高,响应及时但是资源利用率低。
  • 微型计算机操作系统:IBM-PC

1.3 操作系统的运行环境

  • 通用操作系统使用时间片轮转调度算法,用户运行程序并不需要预先语定运行时间。

  • 操作系统执行程序时,必须从起始地址开始执行。

  • 编译器是操作系统的上层软件,不是操作系统需要提供的功能

  • 批处理的主要缺点是缺少交互性

  • 输入/输出指令需要中断操作,中断必须在核心态下执行。

  • 多道性是为了提高系统利用率和吞吐量而提出的。

  • I/O通道是一种特殊的硬件处理器,她具有执行I/O指令的能力,并通过执行通道程序来控制I/O操作。

  • 用户程序设计时,使用系统调用命令,该命令经过编译后,形成若干参数和陷入(trap)指令。程序设计无法形成屏蔽指令。

  • 中断处理是操作系统必须提供的功能,在核心态执行。

  • 用户程序在用户态下要使用的特权指令引起的中断属于访管中断。

  • 内核可以执行处理器能执行的任何指令,用户程序只能执行除特权以外的指令,所以特权指令只能由内核即操作系统使用。

  • 中断系统和地址映射都需要硬件支持,因为他们中的重定位都是离不开硬件支持的。时钟管理是直接由硬件完成的。进程调度由调度算法决定CPU使用权,由操作系统实现,无需硬件支持。

  • 计算机通过硬件中断机制完成由用户态到核心态的转换。

  • 缺页处理和时钟中断都属于中断,在核心态执行,进程调度是操作系统内核进程,无须用户干预,在核心态执行。命令解释程序属于命令接口,在用户态执行。

  • 系统调用是操作系统提供给用户的接口,系统调用发生在用户态,被调用程序在核心态执行。外部中断是用户态到核心态的门,也发生在用户态,但在核心态完成中断过程。缺页产生后,在用户态发生缺页中断,然后进入核心态执行缺页中断服务程序。

  • 置时钟指令只能在核心态下执行

  • 访管指令仅在用户态下使用,执行它将用户态转变成核心态。用户态不能执行特权指令。在核心态下CPU可以执行指令系统中的任何指令。

  • 广义指令可在用户态调用,但只能在核心态执行。输入输出在核心态执行。

  • 整数除零和read系统调用函数在内核态执行,sin()函数调用在用户态执行。

  • 子程序调用只需保存程序断点,即该指令下的下一条指令的地址;中断调用子程序不仅要保存断点(PC的内容),假药保存程序状态字寄存器(PSW)的内容。在中断处理中,最重要的两个寄存器是PC和PSWR.

  • trap、跳转、压栈指令均可以在用户态执行,关中断指令必须在核心态。

  • 内部异常的产生与当前执行指令相关,其检测由CPU内部逻辑实现,其响应发生在指令执行过程中。其处理后不一定会回到发生异常指令并继续执行,如除数为0和自行中断都会自动跳过中断指令。

  • 中断时来自CPU以外的事件,与当前程序运行无关;异常也称内中断、例外、陷入,源自CPU执行指令内部的事件,如地址越界、溢出、缺页等。

  • 外部中断处理的过程中,PC值由中断隐指令自动保存,而通用寄存器内容由操作系统保存。

  • 执行系统调用的过程:正在运行的进程先传递系统调用参数,由陷入指令负责将用户态转换为内核态,并将返回地址压入堆栈以后备用,接下来CPU执行相应的内核态服务程序,最后返回用户态。

  • 处理器为什么要区分核心态和用户态?什么情况下切换?
    区分执行态的目的是保护系统程序。用户态到核心态的转换发生在中断产生时,而核心态到用户态的转换则发生在中断返回用户程序时。

  • 为啥说知道出现中断和通道技术后,多道程序概念才变得有用?
    因为两者结合起来就可以实现CPU和I/O设备并行工作,即CPU启动通道传输数据后便去执行其他程序的计算工作,而通道则进行输入输出操作;当通道工作结束时,再通过中断机构向CPU发处中断请求,CPU则暂停手中的操作,对中断进行处理,之后再继续原来的工作。这样就正真做指导了并行工作。多道程序的概念才变成现实。

1.4 操作系统的体系结构
见思维导图

最后

以上就是轻松手套为你收集整理的操作系统 | 计算机系统概述的全部内容,希望文章能够帮你解决操作系统 | 计算机系统概述所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部