当前位置: 首页 > news >正文

操作系统笔记分享(第一章 操作系统引论)

文章目录

  • 介绍
  • 一、操作系统引论
    • 1.1 操作系统的目标和作用
      • 目标
      • 作用
    • 1.2 操作系统的发展历程
      • 无操作系统的计算机系统
        • 人工操作方式
        • 脱机I/O方式
      • 单道批处理系统
      • 多道批处理系统
      • 分时系统
      • 实时系统
      • 微机(个人)操作系统
      • 嵌入式系统
      • 网络操作系统
      • 分布式操作系统
    • 1.3 操作系统的基本特性
      • 并发
      • 并行
      • 进程线程
      • 共享
        • 互斥共享方式
        • 同时共享方式
      • 虚拟
        • 时分复用技术
        • 空分复用技术
      • 异步(Async await)
    • 1.4 操作系统的运行环境
      • 引导程序
      • 程序分类
        • OS内核(kernel)
        • 系统程序
        • 应用程序
      • 指令分类
        • 特权指令
        • 非特权指令
      • CPU状态
        • 内核态(管态)
        • 用户态(目态)
      • 状态切换
      • 中断(广义)
        • 内中断(异常)
        • 外中断(狭义的中断)
    • 1.5 操作系统的主要功能
      • 处理机管理
      • 存储器 / 内存管理
      • I/O设备管理
      • 文件管理
      • 用户与计算机硬件系统之间的接口
      • 现代OS新功能
    • 1.6 操作系统的的结构设计
      • 简单结构
      • 模块化结构
      • 分层次结构
      • 微内核结构
      • 外核结构
    • 1.7 系统调用
      • 系统调用的概念
      • 系统调用的过程

介绍

我只整理了一些比较关键的、考试可能会考的点,有些具体琐碎的内容我没整理到笔记中。后面会持续更新,希望对大家有所帮助!

一、操作系统引论

操作系统 OS “Operating System”

1.1 操作系统的目标和作用

目标

方便性 有效性 可扩充性 开放性

作用

用户与计算机硬件系统之间的接口

GUI方式(Windows、Linux) 用户可直接使用

命令方式 (UNIX、DOS命令) 用户可直接使用

联机命令接口   用户说一句 系统做一句  比如 命令行
脱机命令接口   用户说一堆 系统做一堆  比如 脚本文件

系统调用方式(API) 一个接口还说得那么高大上… 用户通过程序调用

计算机系统资源的管理者

处理机管理 存储器管理 I/O设备管理 文件管理

实现对计算机资源的抽象

裸机:无软件的操作系统

虚拟机:覆盖了软件的机器,向用户提供一个对硬件操作的抽象模型

用户在操作物理接口之前,包装了一层I/O设备软件接口,使得读写更加容易

原语的概念

由若干条指令构成,用于完成特定功能;要么不做,要么全做,不可分割

1.2 操作系统的发展历程

无操作系统的计算机系统

人工操作方式

打孔纸带,数据输入,启动计算机运行

两个缺点:用户独占主机、CPU等待人工操作

脱机I/O方式

用户可先将纸带放入输入机,外围机能将纸带输入机中的纸带程序输入磁带,CPU用到时就将其从磁带上高速调入内存

两个优点:减少CPU空闲时间、提高I/O速度

单道批处理系统

尽量保持系统连续运行,作业一个接一个连续处理

缺点:内存中只有一道作业,I/O过程中CPU处于等待状态,且I/O设备低速性使得CPU利用率更低,系统资源得不到充分利用

多道批处理系统

一个程序在IO操作时,暂停时的CPU空挡时间可以操作其他程序的计算调度运行

在计算时,输入输出空闲,同理也可以处理其他程序

优点:资源利用率高、系统吞吐量大

缺点:平均周转时间长、无人机交互

分时系统

轮流运转,不断给每一个用户分配一点时间来处理其请求,保证及时性

特点:多路 独立 及时 交互

形象例子:老王轮流为多个客人服务,由于有及时反馈,客人还认为自己有独占性,感受不到别人的存在

实时系统

实时 — 表示 及时,需要对某些任务进行及时处理,在规定时间内按时处理完毕

特点:多路 独立 及时 交互 可靠

微机(个人)操作系统

单用户单任务操作系统: CP/M MS-DOS

单用户多任务操作系统: Windows 95/98

多用户多任务操作系统(目前常用的操作系统): Solaris OS Linux OS Windows NT/Server

嵌入式系统

为了完成特定功能的系统,有实时限制,如响应速度等

网络操作系统

网络资源共享、计算机之间通信

分布式操作系统

分布性、并行性

1.3 操作系统的基本特性

并发和共享密不可分

并发

一个CPU同时执行多个任务,快速来回切换

并行

多个CPU同时分别执行不同程序,如4核CPU同一时刻最多能并行4个应用程序

进程线程

一个应用一般为一个进程

一个进程里一般有多个线程,比如微信进程有聊天,查看朋友圈等多个线程

共享

互斥共享方式

一个时间段只允许一个进程访问该资源,比如微信和QQ的视频通话不能同时进行占用摄像头资源

同时共享方式

一个时间段允许多个进程"同时"访问该资源,微观上可能不是同时而是并发,快速来回切换

虚拟

时分复用技术

拆分一堆时间切片,执行不同任务

利用处理机的空闲时间来运行其他程序以提高处理机的利用率

空分复用技术

利用存储器的空闲空间来存放其他程序以提高内存的利用率

异步(Async await)

单处理机下只有一台处理机,每次只允许一个进程执行,其余进程只能等待

进程的执行通常是"停停走走"的方式运行

并发运行争抢有限资源,一边拿到资源后,另一边会阻塞,直到资源归还

1.4 操作系统的运行环境

引导程序

是计算机系统启动时执行的第一个程序,其主要任务是初始化系统硬件并加载 操作系统内核/OS内核 到内存中

程序分类

OS内核(kernel)

OS 一直运行在计算机上的程序

系统程序

与系统运行有关的程序,但不是内核的 一部分

应用程序

与系统运行无关的所有其他程序

指令分类

在CPU设计和生产时就划分了特权指令和非特权指令,因此在执行指令时就能够判断其类型

特权指令

在内核态下运行的指令

非特权指令

在用户态下运行的指令

CPU状态

CPU中有 程序状态字寄存器(PSW),其中有个二进制位,0表示内核态,1表示用户态

内核态(管态)

处于该状态运行的是内核程序,可以执行特权指令

用户态(目态)

处于该状态运行的是应用程序,只能执行非特权指令

状态切换

内核态 —> 用户态:

执行特权指令,PSW标志位变为1,主动让出CPU控制权

用户态 —> 内核态:

若用户执行特权指令,而此时处于用户态,则会引发中断,立即变为内核态

操作系统重新夺回CPU控制权,终止当前程序运行,转而运行内核程序来处理中断

可以说,没有中断,应用会独占CPU,也就没有并发,没有操作系统

中断(广义)

内中断(异常)

与当前执行的指令有关,中断信号来源于CPU内部

如:用户执行特权指令、陷入指令(请求操作系统资源的指令)等

分为:陷入、陷阱(主动故意触发让内核执行) 故障(内核可修复) 终止(内核也无法修复)

外中断(狭义的中断)

与当前执行的指令无关,中断信号来源于CPU外部(的硬件)

如:时钟中断 — 时钟部件每隔50ms给CPU发送中断信号,用户态转为内核态运行内核指令,并将下个时间片交给其他程序使用(并发)

I/O 请求中断

1.5 操作系统的主要功能

处理机管理

进程控制、同步、通信

作业调度、进程调度

存储器 / 内存管理

内存分配与回收、内存保护、地址映射、内存扩充(虚拟存储技术)

I/O设备管理

缓冲管理、设备分配、设备处理

文件管理

存储空间管理、目录管理、读写管理和保护

用户与计算机硬件系统之间的接口

现代OS新功能

1.6 操作系统的的结构设计

简单结构

也称整体系统结构

无结构,内部复杂混乱

模块化结构

如之前提到的内存管理、文件管理、进程管理等模块

分层次结构

分多层,每个层次只与相邻的层次通信

底层/0层 为 硬件,最高层/N层 为 用户层

特点:准确可扩充但效率低

微内核结构

内核所占内存过大,拆分为内外核,将不重要的部分放在核外

核内外沟通方式:基于客户/服务器(CS)模式

外核结构

只注重保护系统资源,其他硬件资源给应用程序管理,所以内核很小

优点:可以做到在保证资源安全的前提下,减少对应用程序的限制,充分满足应用程序对硬件资源的不同需求

缺点:性能受限、安全性低

1.7 系统调用

系统调用的概念

程序接口由一组系统调用组成

应用程序可以通过系统调用来请求获得操作系统内核的服务

库函数:应用程序直接进行系统调用也有些麻烦,一般调用库函数的服务,由库函数去进行系统调用

通过系统调用方式,向OS内核提出服务请求,OS内核代为完成,才可以保证系统的稳定性和安全性,防止用户非法操作

例:中断程序后转为内核态,转入相应的中断处理程序 — 即 系统调用的入口程序

系统调用的过程

传参、陷入指令、由操作系统内核程序处理系统调用请求、返回应用程序

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 包装类的128陷阱
  • ES6 之 Set 与 Map 数据结构要点总结(一)
  • SLF4J的介绍与使用(有logback和log4j2的具体实现案例)
  • 提高交易决策质量,Anzo Capital昂首资本只需两个交易策略
  • java-spring boot光速入门教程(超详细!!)
  • java 实现人脸检测
  • Java后端开发(十三)-- Java8 stream的 orElse(null) 和 orElseGet(null)
  • 事务性消息
  • ts-01.泛型(函数和接口)
  • 列表渲染 v-for
  • 2.贪心算法.基础
  • 【零基础】学JS
  • Monaco 多行提示的实现方式
  • UE C++ 多镜头设置缩放 平移
  • SQLServer设置端口
  • 分享的文章《人生如棋》
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • javascript面向对象之创建对象
  • java概述
  • leetcode46 Permutation 排列组合
  • Tornado学习笔记(1)
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • webpack4 一点通
  • 码农张的Bug人生 - 见面之礼
  • 如何在 Tornado 中实现 Middleware
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 1.Ext JS 建立web开发工程
  • hi-nginx-1.3.4编译安装
  • # 数论-逆元
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #pragma 指令
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (2)nginx 安装、启停
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (HAL库版)freeRTOS移植STMF103
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .Net 应用中使用dot trace进行性能诊断
  • :如何用SQL脚本保存存储过程返回的结果集
  • @EnableConfigurationProperties注解使用
  • [100天算法】-x 的平方根(day 61)
  • [20190401]关于semtimedop函数调用.txt
  • [AI 大模型] 百度 文心一言
  • [AIGC] Kong:一个强大的 API 网关和服务平台
  • [Angular 基础] - 自定义指令,深入学习 directive
  • [BT]BUUCTF刷题第4天(3.22)
  • [BZOJ4010]菜肴制作
  • [C# 开发技巧]如何使不符合要求的元素等于离它最近的一个元素