Wednesday, March 4th 2020, 9:56 pm

  1.9k 字     7 分钟       

第一篇学习笔记!

1.Introduction

a

什么是操作系统

  • 用户和计算机硬件之间的中介
  • OS是个软件——一个虚拟化计算机的程序

OS的作用

  • 物理机层面(CPU Memory Devices):分配资源
  • 虚拟机层面(Application):控制程序

exe的生成和执行

exe windows等

生成

a

执行

History of OS

No OS->Simple Batch Systems->Batch System->Multiprogramming Systems->Time sharing system->Modern System

OS需要的硬件特性

🐳受保护的指令

=特权指令

操作系统才有权使用 :
  • 对某些硬件资源直接访问指令,如IO;
  • 对内存管理状态进行操作的指令,如内存地址映射
  • 某些特殊的状态位的设置指令
  • 停机指令

💊4个处理器特权级别 x86大多R0 R3相当于管态 目态 ⬇

如何从硬件实现这个要求
1. 处理器的状态

根据运行程序对资源和机器指令的使用权限,
把处理器设置为不同状态。

多数:管态 目态 有些还有: 核心状态

程序状态字 (Program Status Word) 一个专门的寄存器
判断当前运行程序是系统程序还是用户程序

  • 工作状态码
  • 条件码
  • 中断屏蔽码
2.状态转换 kernel \Leftrightarrow user

内核态->用户态 设置PSW

用户态->内核态 唯一途径是中断

用户程序如何去做有特权的事情 如IO

用户向操作系统提出服务请求一般有两种方式:终端命令和系统调用

🐳系统调用


一些基本知识:
👀打个酱油
a

printf是不能和内核直接打交道的,这个需要借助system call来实现.其中一个完整的操作系统,并不包括库函数.


实现过程:

特殊的访管指令:

系统调用指令的实现过程
  • CPU执行到访管指令,引起访管中断;
  • 处理器保存中端点的程序执行上下文环境CPU切换到内核态
  • 中断处理程序 开始工作,调用相应的系统服务
  • 中断处理结束后,恢复上下文环境,CPU恢复为用户态,回到中断点继续执行。
a

Linux:

sys_call_table[]记录系统调用函数入口地址,eax调用号,int0x80系统调用中断

\lceil 为系统调用设置参数,系统调用号压入寄存器, 产生80中断 , 由用户态切换到内核态 ,保护现场将程序运行相关信息压栈, 执行系统 调用处理程序system_call,根据系统调用表找和系统调用号执行完函数,返回值压入寄存器,从内核态回到用户态,恢复现场,程序获得返回值 。\rfloor

🐳函数调用

过程没明白

系统调用 VS. 函数调用
  • 保护了系统,更安全
  • 跨越了硬件栅栏,开销大,花费时间长

​ solution: 把一些系统功能放在用户态下运行,如动态库(DLL)

A tAble:
函数库调用 系统调用
在所有的ANSI C编译器版本中,C库函数是相同的 各个操作系统的系统调用是不同的
它调用函数库中的一段程序(或函数) 它调用系统内核的服务
与用户程序相联系 是操作系统的一个入口点
在用户地址空间执行 在内核地址空间执行
它的运行时间属于“用户时间” 它的运行时间属于“系统时间”
属于过程调用,调用开销较小 需要在用户空间和内核上下文环境间切换,开销较大
在C函数库libc中有大约300个函数 在UNIX中大约有90个系统调用
典型的C函数库调用:system fprintf malloc 典型的系统调用:chdir fork write brk;

🐳内存保护

Why:
  • 防止一个用户程序访问另一个用户程序的数据
  • 保护操作系统免受用户程序的破坏
硬件支持:

Simplest: 基址寄存器 边界寄存器

虚拟存储技术:内存外存结合起来使用,硬件提供虚实地址映射的机制

🐳中断机制

“中断驱动” 像驱动齿轮一样

interrupt

改变了正在执行的指令的顺序

中断类型
  • 同步中断 also“异常” from:CPU控制单元
    • CPU检测到的异常
    • 程序设定的异常,软中断请求
  • 异步中断 from:其他硬件设备
    • 可屏蔽中断 即 I/O中断
    • 不可屏蔽 硬件故障
  • 中断向量 0-255

🐳I/O系统

实现输入输出功能

🐳时钟系统

在分时系统中,间隔时钟实现进程间按时间片
轮转;

在实时系统中,按要求的间隔输出正确的时间
信号给实时的控制设备;

记录用户和系统所需的绝对时间(年、月、日、
时、分、秒)。

系统类型

[分布式系统 Distributed System]

优点:loosely-coupled 松耦合

  • 资源共享
  • 提高计算速度
  • 更可靠
  • 交互性强

[并行系统 Parallel Operating System]

多处理器 紧耦合

  • 所有处理器共享时钟、总线、内存

两类

  • 对称并行 Symmetric multiprocessing
    • 每个CPU没有差别
  • 非对称并行 Asymmetric multiprocessing
    • 每个CPU有特定功能

优点

  • 提高吞吐量
  • 提高可靠性
  • 规模经济

[集群系统 Clustered Systems]

  • 和并行系统不同

    • 由多个独立系统组成
  • 和分布式系统不同

    • 共享存储

[实时系统 Real time System]

硬实时:保证所有任务都在deadline之前完成 软实时:尽最大努力

[无处不在的系统 Ubiquitous Systems]

未来 更关注人机交互 安全

启动过程 Startup Process

  1. 打开电源
  2. CPU通过时钟初始化
  3. 在BIOS中找到启动程序的CPU的第一条指令
  4. 执行开机自检(POST),检查所有硬件设备

Bootstrap program启动程序 很重要,在开机或者重启的时候加载—一般写在ROM或者EPROM中。称为固件firmware

运行过程 Running Process

OS等待人去交互

多个任务如何共享一个CPU?

  • 中断 interrupt

I/O操作

  • IO设备可以和CPU同时执行
    • I/O在设备和控制器缓存(controller’s buffer)之间转移数据
    • CPU在控制器和主存之间转移数据
  • I/O设备访问
    • Memory Mapped I/O(CPU就像访问内存一样访问I/O)
    • Programmed I/O(每个控制寄存器都分配一个I/O端口号,CPU使用特定的I/O指令去读写寄存器)

轮询和中断 Polling or Interrupt

[轮询]

CPU不断读状态寄存器直到有任务 -效率不高

[中断]

谁有需要谁就主动通知CPU -硬件触发通过总线 软件触发通过系统调用

大部分OS都是中断的

操作系统的服务

  • 程序执行 Program execution
  • I/O操作 I/O operations
  • 文件系统的操作 File-system manipulation
  • Communications 在进程间传递消息
  • 错误检测 Error detection

额外的功能

  • 资源分配 Resource allocation
  • 账号管理 Accounting
  • 保护 Protection

所有操作系统共同的系统组件

  • Main Memory Management
  • File Management
  • I/O System Management
  • Secondary Management
  • Networking
  • Protection System
  • Command-Interpreter System

OS内核

操作系统的内核是指在计算机硬件上扩充的第一层软件。通常是一些与硬件紧密相关的模块。内核的实现是通过原语实现的,而原语又是由原子操作构成的。 原语是由若干指令构成的,用于完成一定功能的过程。而原子操作是指在这过程中的行为 ,要么全做,要么不做,不可中断(以保证操作的完整性)。



OS      大二下 OS

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

 TOC