操作系统
操作系统
Phase 1 导论
什么是操作系统?
在各种各样的电子产品中,我们主要学习以及了解的是Computer System
Computer System由三大部分构成:
- Hard Ware 硬件
- Soft Ware 软件
- Data 数据
抽象的理解起来,操作系统充当着硬件与软件之间的桥梁
操作系统功能
- 处理机管理
- 进程控制
- 进程同步
- 进程通信
- 调度
- 存储器管理
- 内存分配
- 内存保护
- 地址映射
- 内存扩充
- 设备管理
- 缓冲管理
- 设备分配
- 设备管理
- 文件管理
- 文件存储空间管理
- 目录管理
- 文件读写管理和保护
- 用户接口
- 用户接口
- 程序接口
- 现代OS功能
- 系统安全
- 网络功能以及服务
- 多媒体支持
定义操作系统
计算机系统组成
磁盘结构
磁盘扇区
操作系统的启动
大致为BOOTSTRAP模式,即OS自己把自己启动
中断机制
- 当有事件(Event)发生时,CPU会收到一个中断(Interrupt)信号,可以是硬中断也可以是软件中断
- CPU会停下正在做的事,转而执行中断处理程序,执行完毕会回到之前被中断的地方继续执行
- Operating System is an INTERRUPT driven system.
存储层次图
I/O结构
- IO设备时计算机体系结构中种类最丰富的设备类型,而且他有着很强的扩展性
- 管理IO设备时操作系统非常重要的组成部分,操作系统中有一个专门的IO子系统负责完成这项工作
计算机系统体系结构
单处理器系统
- Single-processor System
- 只有一颗主CPU,执行通用指令集
- 带有其他专用处理器,为特定设备服务如磁盘键盘图形控制器等
- 它们能够执行的指令有限,不处理用户进程
- 操作系统会向他们发出任务,并监控它们的状态
操作系统结构
操作系统的完成模式:单用户单道模式
多道程序设计
- 操作系统最重要的一点是具有多道程序(multiprogramming)能力
- 单道程序不能让CPU和IO设备始终忙碌,多道程序设计通过安排任务使用得CPU总有一个执行任务,从而提高CPU利用率
- 实现的硬件保证:处理器和IO设备具备并行工作的能力
分时系统
- 分时系统(time sharing)也称多任务系统,是多道程序设计的自然延伸
- 允许多个用户共享一台计算机
- 用户只有输入和输出设备
- 分时系统为每个用户轮流分配等量的CPU空间
- 用户从发出指令到得到即时结果的时间称为响应时间
- 第一个分时系统CTSS由MIT(麻省理工大学)于1962年开发出来
引发的其他设计模式
- 处理器调度(CPU Scheduling)
- 交换(Swapping)
- 虚拟内存(Virtual Memory)
- 磁盘管理(Disk Management)
- 同步(Synchronization)
- 死锁(Deadlock)
- …
Phase 2 Linux系统
操作系统的服务
操作系统提供哪些服务?
为普通用户
- GUI 图形化用户接口
- batch 批处理系统
- command line 命令行接口
User Interface
- 几乎所有的操作系统都具有其用户接口(User Interface)即UI,为用户提供与操作系统交互的方式
- CLI(Command LIne Interface) 命令行接口
- command interpreter(shell) 命令解释器
- GUI(Graphic User Interface) 图形化用户界面
- A user friendly graphical user interface 对用户友好的交互界面
- Batch
- It is a file which contains commands and directives 实质上Batch就是一个文件,包含了各种 命令和指示
- Demonstration
- CLI(Command LIne Interface) 命令行接口
为开发者
- program execution 程序执行
- I/O operations IO设备交互管理
- file systems 文件系统
- communication 交流
- resource allocation 资源分配
- accounting 记录
- error detection 错误检测
- protection and security 安全与保护
系统调用(System Calls)
- 系统调用提供了访问和使用操作系统所提供的服务的接口
- 系统调用的实现代码是操作系统级的
- 这个接口通常是面向开发者的
- API(Application Programming Interface):指明了参数和返回值的一组函数
- 应用程序App的开发人员通过API间接访问了系统调用
标准C程序
双重模式(DUAL MODE)
现代计算机系统有一个特殊的硬件用于划分系统的运行状态,至少需要两种单独运行模式
- 用户模式(user mode):执行用户代码
- 内核模式(kernel mode):执行操作代码
目的:确保操作系统正确运行
实现方式
用一个硬件模式位来表示当前模式:0表示内核模式,1表示用户模式
GNU/Linux
开源操作系统
- Open-source,closed-source,hybrid operating system(开源,闭源,混合式)
- source code and binary code
Phase 3 进程管理
在了解进程之前,我们有必要先了解一下在操作系统中,每一个程序所具有的特征,这里只讨论程序并发执行时的程序特征
- 间断性。程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的程序之间形成了相互制约的关系,相互制约将导致并发程序具有”执行——暂停——执行”这种间断性的活动规律。
- 失去封闭性。当系统中存在着多个可以并发执行的程序时,系统中的各种资源将为它们所共享,而这些资源的状态也由这些程序来改变,致使其中任一程序在运行时,其环境都必然会受到其他程序的影响。
- 不可再现性。程序在并发执行时,由于失去了封闭性,也将导致其又失去可再现性。
进程的定义
操作系统中,进程是无可避免的一环,不同于我们大脑中潜意识认为的程序,进程实际上是计算机中的程序关于某数据集合上的一次运行活动
Phase 4 内存管理
Phase 5 存储管理
Phase 6 IO系统
常用指令
1 | (0) 进入homework_0文件夹,分别创建文件夹dir_a, dir_b, dir_c |
tmux和vim
学习之前,首先我们要知道tmux和vim是什么,在百度百科中,对它们的定义是这样的
tmux
tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机;当然其功能远不止于此。
tmux比较重要的用途:1.分屏 2.脱离服务器运行进程
1 | //复制 |
tmux指令
1 | //指令基于ubuntu64位 |
vim
Vim是从vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。
vim指令
1 | //进入vim之后会有三种模式,分别是一般命令模式、编辑模式、命令行模式 |