1 计算机系统概述

1.1 操作系统的目标和作用

操作系统的定义

操作系统(Operating System,OS)是指【控制】和【管理】整个计算机系统硬件和软件,合理的【组织】和【调度】计算机的工作与资源的分配,为用户和其他软件提供方便的接口与环境的程序集合。


操作系统的目标

  1. 方便性:配置操作系统使计算机更容易使用
  2. 有效性:使计算机的各类资源得到更有效地利用,并提高吞吐量
  3. 可扩展性:便于修改和增加功能
  4. 开放性:系统能遵循开放的OSI国际标准,使软硬件在一定的标准下可以更好的兼容

操作系统的作用

OS作为用户与计算机硬件系统之间的接口,用户通过OS来使用计算机系统

  1. 命令接口

    • 联机命令接口,这种命令方式是由一组键盘操作命令组成,适用于分时或实时系统的接口,就是"用户说一句,系统做一句"

    • 脱机命令接口,这种命令方式是由一组作业控制命令(或作业控制语句组成),适用于批处理系统,就是"用户说一堆,系统作一堆"

  2. 程序接口,这种命令方式是由一组系统调用命令组成。用户通过在程序中使用这些系统调用命令来请求操作系统为其提供服务,这种名利是对系统提出各种服务要求。

  3. GUI


OS作为计算机系统资源的管理者

操作系统将管理:处理机、存储器、I/O设备以及文件

  1. 处理机管理:用于分配和控制处理机
  2. 存储器管理:负责内存的分配和回收
  3. I/O设备管理:负责I/O设备的分配和操纵
  4. 文件管理:用于实现对文件的存取、共享和保护

OS实现了对计算机资源的抽象

  1. OS是铺设在计算机硬件上的多层软件集合(它不仅增强了系统的功能;还隐藏了对硬件操作的具体细节-这些对用户不友好,提高使用计算机的门槛-;实现了对计算机硬件操作的多个层次的抽象模型)
  2. 比如,对文件系统作一个虚机器,对I/O设备做一个虚机器,OS在虚机器中充当管理员和协调员,管理这些资源

推动操作系统发展的主要动力

  1. 不断提高计算机资源利用率
  2. 方便用户
  3. 器件的不断更新换代
  4. 计算机体系结构的不断发展
  5. 不断提出新的要求

操作系统的四大特征

(一)并发(Concurrence)

并发是指两个或多个事件在**同一时间间隔**内发生。(宏观上同时,微观上交替)

(二)共享(Sharing)

这里的共享就是指资源共享,系统中的资源可供内存中多个并发执行的进程共同使用。

共享氛围:互斥共享方式、公式访问方式

**互斥共享方式是指:**一段时间内只允许一个进程访问该资源,例如打印机、磁带机。同时明确一个概念,在把一段时间内只允许一个进程访问的资源称为临界资源或独占资源。这里需要有同步的概念。

**同时访问方式是指:**这类资源允许在一段时间内由多个进程"同时"访问。这里的"同时"之所以打引号,是指在单核处理机的条件下,在宏观上是同时,在微观上是交替(与并发类似)。

以上两者的区别在于:互斥共享方式一种资源在一段时间内只能满足一个请求,这段时间不能分时。同时访问方式一个请求分几个时间片段间隔的完成。

【注】并发和共享是操作系统两个最基本的特征,两者还有互为存在的联系:资源共享是以程序并发为基础的,如果系统不允许程序并发,那就不存在共享的问题;若系统不能对资源共享做有效管理,那么必将影响程序的并发执行,甚至无法做到并发执行。

(三)虚拟(Virtual)

虚拟是指把一个物理上的实体变为若干逻辑上的对应物。这里的物理实体是指实际存在的硬件资源;逻辑上的对应物是指用户感觉上的事物。

虚拟在应用上有:CPU的虚拟技术、内存的虚拟技术和IO设备虚拟技术

  • 分时操作系统:利用多道程序设计技术把一个物理上的CPU虚拟为多个逻辑上的CPU。通过多道程序并发执行,每道程序执行一个时间片。(时分复用技术)
  • 虚拟内存:把一台机器的物理存储器变为虚拟存储器,以便从逻辑上扩充存储器的容量。比如LOL这个游戏有十几个G,但是它能在内存为8G的电脑上运行。也就是说,在加载的时候,并不是吧十几个G的资源放在内存中等待处理机的处理,而是把必要的文件放在内存中交给处理机运行,把不要的文件从内存中取出。这样就算是十几个G的游戏也可以在内存没那么大的电脑中运行了。(空分复用技术)
  • IO设备虚拟:将一台物理IO设备虚拟为多台逻辑上的IO设备,比如多台电脑连接一台打印机。

(四)异步

异步是指在多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是贯彻到底的,而是走走停停的,这就使得不可预知的速度向前推进。

1.2 操作系统的发展与分类

手工操作阶段(此阶段无操作系统)

  • 解决的问题(优点)
  • 用高速的机器代替相对较慢的手工操作来对作业进行控制
  • 存在的问题(缺点)
    • 用户独占全机,不会出现因资源已被其他用户占用而出现等待的现象,但资源利用率低

    • CPU等待手工操作,CPU的利用不充分。出现这个问题的症结是

      • CPU的运算快但输入输出慢
      • 人机速度的矛盾

批处理阶段(操作系统开始出现)

(一)单道批处理系统

特点

  • 自动性,在顺利情况下,磁带上的一批作业能自动的逐个运行,无需人工干预
  • 顺序性,磁带上的歌到作业顺序的进入内存各道作业顺序地进入内存
  • 单道性,内存中仅有一道程序运行

解决的问题(优点)

  • 缓解了一定的人机速度矛盾的问题

  • 引入了脱机输入/输出技术并监督程序负责控制作业输入输出

存在的问题(缺点)

  • 系统吞吐量不高,每次主机内存中仅存放一道作业
  • 资源利用率低,当作业运行期间发出输入/输出请求后,高速的CPU便处于等待低速的IO完成状态

(二)多道批处理系统

特点

  • 多道

  • 宏观上并行,同时进入系统的多道程序都处于运行过程中,即他们先后开始各自的运行,但都未运行完毕

  • 微观上串行,内存中的多道程序轮流占有CPU,交替执行

解决的问题(优点)

  • 多道,计算机内存中同时存放多道相互独立的程序,提高了资源利用率;同时让CPU和其他资源始终处于"忙碌"状态,提高了系统的吞吐量

存在的问题(缺点)

  • 用户响应的时间较长
  • 不能提供人机交互能力(因为多道批处理系统继承了单道批处理系统的顺序性和自动性)
  • 用户既不能了解自己的程序的运行情况,又不能控制计算机(也就是没有提供人机交互能力)

分时操作系统

特点

  • 同时性,允许多个终端用户同时使用一台计算机
  • 交互性,用户能够方便地与系统进行人机对话
  • 独立性,系统中多个用户可以彼此独立的进行操作,互不干扰,也感觉不到别人也在使用这台计算机
  • 及时性,用户的请求能在很短的时间内获得响应

解决的问题(优点)

  • 较好地解决了人机交互的问题

存在的问题(缺点)

  • 不能优先处理一些紧急任务
  • 在规定时间内必须作出处理的条件不好

实时操作系统

特点

  • 及时性,某个动作必须绝对地在规定的时刻发生
  • 可靠性

解决的问题:

  • 可以处理紧急问题

网络操作系统

特点

  • 把计算机网络中的各台计算机有机地结合起来,提供一种统一、经济而有效的使用各台计算机的方法,实现各台计算机之间的数据和相互传送
  • 网络中各种资源的共享及各台计算机之间的通信
  • 服务于计算机网络,集中处理是控制方式

分布式操作系统

特点

  • 系统中任意两台计算机通过通信方式交换信息
  • 系统中的每台计算机都具有相同的地位,即没有主机也没有从机
  • 每台计算机上的资源为所有用户共享
  • 系统中的任一台计算机都可以构成一个子系统,而且还能重构
  • 任何工作都可以分布在几台计算机上,由它们并行工作、协同完成
  • 分布性
  • 并行性

1.3 操作系统的运行环境

操作系统的运行机制

操作系统概念下CPU执行的两种不同性质的程序:操作系统内核程序、用户自编程序

对于操作系统来说,操作系统内核程序是一种"管理程序",在操作系统中的地位是管理者,需要执行一些——特权指令;用户自编程序是一种"被管理程序",在操作系统中的地位是被管理者,出于安全的考虑不允许使用特权指令

一些典型的特权指令(就是用户自编程序不能直接使用的指令):IO指令、置中断指令、存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器的指令。

CPU的两种状态:用户态(目态)、核心态(管态、内核态)。即在核心态的状态下,此时CPU可以执行特权指令,在用户态下,CPU无权执行特权指令。用户自编程序在用户态,操作系统内核程序在核心态。


大多数操作系统内核包括四方面内容

(一)时钟管理

  • 时钟在操作系统中各设备中是最关键的设备。
  • 始终的第一功能是计时,操作系统需要通过始终管理,向用户提供变准的系统时间
  • 通过时钟中断的管理,可以实现进程的切换(分时系统的时间分片,实时系统的时间控制)

(二)中断机制

  • 针对外部设备提高多道程序运行环境中的CPU的利用率
  • 需要用到中断的地方:键盘或鼠标信息的输入、进程的管理和调度、系统功能的调用、设备驱动、文件访问
  • 中断机制中只有一小部分功能属于内核,它们负责保护和恢复中断现场的信息,转移控制权相关的处理信息,这样做为了减少中断的处理时间,提高系统的并行处理能力

(三)原语

  • 原语处理操作系统的最底层,是最接近硬件的部分
  • 这些程序的运行具有原子性,其操作只能一气呵成
  • 这些程序的运行时间都较短,且调用频繁
  • 定义原语的直接方法是关闭中断,让其所有动作不可分割的完成后再打开中断

(四)系统控制的数据结构及处理

系统中用来登记状态信息的数据结构有很多,常见的操作有以下三种

  • 进程管理,进程状态管理、进程调度和分派、创建于撤销进程控制块
  • 存储器管理,存储器的空间分配和回收、内存信息保护程序、代码对换程序等
  • 设备管理,缓冲管理、设备分配和回收等

中断和异常等概念

在操作系统引入了用户态和核心态之后,要考虑如何在这两个状态之间切换。所以需要在操作系统核心态建立一些"门",以便实现从用户态进入核心态,在实际操作系统中,CPU运行上层程序是唯一能进入这些"门"等途径就是通过中断和异常。

发生中断或异常的时候,运行用户态的CPU会立即进入核心态,这是通过硬件实现(也佐证了单单用户自编程序是无法进入核心态的)

中断的主要目的是为了提高资源利用率,也就是当一个程序未使用某种资源时,把它对那种资源的占有权释放,这个过程称之为释放

中断(广义)大体可以分为两类

  • 内中断(异常)——这里需要补充

    • 自愿中断(比如程序运行结束):比如陷入指令,这里需要注意【陷入指令】是在【用户态】执行的,陷入指令之后立即引发一个内中断,从而CPU进入核心态。而且【陷入指令】是唯一一个只能在用户态执行,不能在核心态执行的指令
    • 强迫中断:硬件故障(缺乏所需要的资源)、软件中断(除数为0)、缺页中断
  • 外中断(狭义上的中断,强迫中断):补充定义:指中断事件来源是来自CPU执行指令以外的事件的发生。这一类中断通常是与当前程序运行无关的事件,即它们与当前处理机运行的程序无关
    • 外设请求(比如鼠标和键盘的IO操作):设备发出IO结束中断,表示IO处理已经完成,希望处理机能够向设备发下一个IO请求,同时让完成IO后的请求继续运行
    • 人的干预(用户强行终结)
    • 时钟中断,表示固定的时间片已到,让处理机处理计时、启动定时运行的任务。

外中断的处理过程

  1. 执行完每个指令(可以认为这种指令是一种原子性的指令)之后,CPU都要检查当前是否有外部中断信号
  2. 若检测到有外部中断信号,则需要保护当前正在运行中的进程(也称为被中断程序,这很好理解)的CPU环境
  3. 根据中断信号类型,转入响应的中断处理程序(中断类型不同,中断处理程序不同;显然需要对症下药)
  4. 恢复原进程CPU环境并退出中断,返回原进程需要往下执行

系统调用

系统调用是什么?

系统调用是指,用户在程序中调用操作系统所提供的一些子功能,系统调用可视为特殊的公共子程序。

为什么需要系统调用?

因为在系统中,各类共享资源都是由操作系统统一掌管的,因此在用户程序中,凡是与资源相关的操作(比如存储分配、进行IO传输、管理文件等),都必须通过系统调用这个媒介向操作系统提出服务请求,并由操作系统代为完成

总结来说,就是用户程序不允许直接碰到操作系统控制的资源,因为这对系统影响非常大,必须通过媒介(系统调用)或者状态切换(比如中断和异常),以保证系统的稳定性和安全性,防止用户程序随意更改或访问重要的系统资源,影响其他进程的运行。

如何进行系统调用?

通过trap指令(陷入指令)

系统调用的功能有哪些?

  • 设备管理:完成设备的请求和释放,以及设备启动等功能
  • 文件管理:完成文件的读、写、创建以及删除等功能
  • 进程控制:完成进程的创建、撤销、阻塞及唤醒等功能
  • 内存管理:完成内存的分配、回收以及获取作业占用内存区大小及始址等功能
  • 进程通信:完成进程之间的消息传递或信号传递等功能

发出系统调用的请求是在用户态,对系统调用的相应处理在核心态


1.4 操作系统的体系结构

大内核(大政府,控制强):将OS的主要功能模块都作为系统内核,运行在核心态

优点:高性能

缺点:内核代码庞大,结构混乱难以维护

微内核(小政府,放权):只把最基本的功能保留在内核

优点:内核功能少,结构清晰方便维护

缺点:需要频繁地在核心态和用户态之间切换,性能低

【计算机考研408强化-操作系统】1. 操作系统的基本概念相关推荐

  1. 【计算机考研408强化 - 操作系统】5 输入输出管理

    5 输入输出管理 5.1 IO控制方式 程序直接控制 程序直接控制方式的运行流程 对读入的每个字,CPU都需要对外设状态进行循环检查,直到确定该字已经在I/O控制器的数据寄存器中. 在程序直接控制方式 ...

  2. [408] NOTES on OS -计算机考研408笔记-操作系统

    [408] NOTES on OS 文章目录 [408] NOTES on OS 1 计算机系统概述 2 进程管理 3 内存管理 4 文件系统 5 I/O管理 1 计算机系统概述 单处理机系统中,可并 ...

  3. 2021计算机专业考408的学校,2021考研:计算机考研408是什么?统考学校有哪些?...

    到底计算机考研408是怎么样的. 第一,什么学校考408,大部分985和少部分211 第二,难度怎么样,确实难度很大,我没考过其他工科,不知道是不是最难.但是我想说的是考过的大部分都说特别难,一般考8 ...

  4. 计算机考研408复试(面试)问题——数据结构

    计算机考研408复试(面试)问题: 链接: 计算机组成原理 链接: 操作系统 链接: 数据结构 链接: 计算机网络 1.绪论 1.数据类型 原子类型.如 int.bool 结构类型.如struct{- ...

  5. 408计算机组成考试大纲,2021计算机考研408大纲:计算机组成原理部分解析及备考指导...

    2021计算机考研408大纲已经公布,那么大纲公布后,我们要如何根据大纲进行计算机考研复习呢?一起来看看吧~更多考研专硕复习资料.考研专硕试题.考研专硕复习策略等信息,请您关注浙江考研专硕备考. 计算 ...

  6. 计算机考研408专业课 思维导图

    计算机考研408,数据结构,计算机组成原理,计算机操作系统,计算机网络,思维导图分享: 随着学习的过程会逐渐的将个人总结发布出来,可以先点赞收藏关注一波,方便及时收到更新通知: 欢迎任何合理建议.

  7. 学计算机的前后对比,2020计算机考研(408)大纲前后对比分析!

    2020计算机考研(408)大纲已发布,计算机考研(408)大纲对于考研计算机复习具有指导意义,让复习方向化零为整,提高复习效率,在考研大纲发布后,学府考研招生老师第一时间整理2020计算机考研(40 ...

  8. 计算机考研408复试(面试)问题——计算机网络

    计算机考研408复试(面试)问题: 链接: 计算机组成原理 链接: 操作系统 链接: 数据结构 链接: 计算机网络 1.计算机网络体系结构 1.计算机网络的功能   数据通信.资源共享.分布式处理.提 ...

  9. 计算机考研408复试(面试)问题——计算机组成原理

    计算机考研408复试(面试)问题: 链接: 计算机组成原理 链接: 操作系统 链接: 数据结构 链接: 计算机网络 1.计算机系统概述 1.计算机由哪几部分组成?以哪部分为中心?   计算机由运算器. ...

  10. 计算机考研408真题(全国统考2009--2020)、985高校计算机考研资料(清北+北理+北邮+武大+华科+浙大+复旦+哈工大+西安交大+华南理工)、王道四件套、天勤四件套---百度网盘免费下载

    1.计算机考研408真题(全国统考2009–2020) 真题 链接:https://pan.baidu.com/s/1uTQd7wScWBk16ShJlyUbgA 提取码:u5vw 答案 链接:htt ...

最新文章

  1. 6.5万维网和HTTP协议
  2. 拉勾教育专栏文章转markdown
  3. CentOS 7.X 安装 Gitlab 笔记
  4. linux在shell中获取时间
  5. Kendall Rank(肯德尔等级)相关系数
  6. ZDOCUMENT_BILL_EXCHANG_POST
  7. 北邮计算机系统结构课件,TEC-8 运算器组成实验(北邮).ppt
  8. redirect()重新定向·
  9. PyQt5教程(二)——PyQt5的安装(详细)
  10. 谷歌搜索没有相机图标_教您如何在Google上搜索图片
  11. 六、Xbar-R、柏拉图管制分析
  12. unity打箱子小游戏demo
  13. matlab+nbiot,基于STM32L4+BC28(全网通) NBIOT开发板原理图教程源码等开源分享
  14. CABasicAnimation,CAKeyframeAnimation,CATransition,CAAnimationGroup,UIBezierPath之间做动画的不同点和各自的使用范围。
  15. 前端处理emoji表情的编码解码
  16. lingo子模型——数学模型4.7 例1 广告投入
  17. 【WIP】Seastar框架学习
  18. 研究生自救-写论文篇
  19. 使用OpenSSL生成自己服务器的证书
  20. oracle 特殊字符 处理

热门文章

  1. 大气压力换算公式_大气压怎么算
  2. vue省市区三级联动-封装集成
  3. 深度学习入门_对ORL数据集进行特征提取降维后SVM分类
  4. signature=928c561b85c7b57c8e64bdeb4a18b1f1,专注于Win7系列作品汇总(月版)
  5. matlab k-s检验,柯尔莫可洛夫-斯米洛夫检验(Kolmogorov–Smirnov test,K-S test)
  6. 中国 各大银行bankCode 开户行代码和名称 高清银行图标
  7. java 异步发送消息_Java模拟异步消息的发送与回调
  8. 美团架构师熬夜整理:Netty权威指南2.0版+英雄传说项目
  9. 二阶带阻有源滤波器设计与仿真测试
  10. 高通平台开发系列讲解(外设篇)BMI160基本配置