操作系统概述
操作系统概述
1,操作系统做了什么
我们编写这样一条C语言代码
#include<stdio.h>
int main()
{
puts("hello world");
return 0;
}
- 1.用户告诉操作系统执行此程序
- 2.操作系统接收到指令,先去磁盘上找到此程序的相关信息,然后检查其类型是否为可执行文件;紧接着通过程序首部信息确定代码和数据在可执行文件中的位置并计算出对应的磁盘块地址(pe,elf)
- 3.操作系统新创建一个进程,并将helloworld执行文件映射到该进程结构,表示由该进程执行helloworld程序
- 4.为helloworl程序设置CPU上下文环境,并跳到程序的开始处,准备执行该程序
- 5.执行程序的第一条指令,发生缺页异常(因为程序在执行时,先要把程序的代码和数据读入内存中,CPU才能去执行,但此时helloworld的代码还在磁盘中,所以此时硬件机制会捕获出缺页异常,并且把控制权交给操作系统)
- 6.操作系统管理着内存. 内存管理模块会分配一页空闲的物理内存,并且根据前面计算出的磁盘块地址,把helloworld程序的代码从磁盘读入内存,然后继续执行helloworld程序
- 7.程序执行puts()函数 (系统调用),在显示器上写一字符串
- 8.操作系统找到要将字符串送往的显示设备,通常设备是由一个进程控制的,所以操作系统将要输出的字符串送给该进程
- 9.控制设备的进程会告诉设备的窗口它要显示字符串,窗口系统确定这是一个合法的操作,然后将字符串转换成像素,将像素写入设备的存储映像区
- 10.视频硬件将像素转换成显示器可接受的一组控制数据信号
- 11.显示器解释信号,激发液晶屏
- 12.最后,我们在屏幕上看到了 “hello world”
但如果换一个角度来看
2.操作系统的定义与作用
操作系统是计算机系统中的一个系统软件,是一些程序模块的集合–
- 它们能以尽量有效,合理的方式组织管理计算机的软硬件资源
- 合理地组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能
- 使得用户能够灵活,方便地使用计算机,使整个计算机系统高效率运行
有效:系统效率,资源利用率 CPU利用率充足与否?I/O设备是否忙碌?
合理:各种软硬件资源的管理是否公平合理?
方便使用:用户界面,编程接口
操作系统的三个作用:
- 1.资源的管理者:有效
自底向上,操作系统是资源的管理者
硬件:CPU,内存,设备(I/O设备,磁盘,时钟,网卡)
软件:磁盘上的文件,各类管理信息
管理资源:
1>.跟踪记录资源的使用状况
2>.确定资源分配策略–算法(动态分配策略)
3>.实时资源的分配和回收
从资源管理的角度:五大基本功能
-
进程/线程管理
进程线程状态,控制,同步互斥,通信,调度
-
存储管理
分配/回收,地址转换,存储保护,内存扩充
-
文件管理
文件目录,文件操作,磁盘空间,文件存取控制
-
设备管理
设备驱动,分配回收,缓冲技术
-
用户接口
系统命令,编程接口
- 2.向用户提供各种服务:方便使用
OS是各种系统服务的提供者
从用户角度看,操作系统为用户提供了一组功能强大,方便易用的命令或系统调用
- 3.对硬件机器的扩展:扩展能力
OS是硬件基础上的第一层软件. 与硬件相关的工作复杂,琐碎.而这些工作由操作系统去执行
操作系统在应用程序与硬件之间建立了一个等价的扩展机器(虚拟机)
对硬件抽象,提高可移植性;比底层硬件更容易编程
3.操作系统的主要特征
- 1.并发
指处理多个同时性活动的能力,由于并发会引发很多问题:活动切换,保护,相互依赖的活动间的同步
单CPU下,宏观上:这些程序同时在执行.但微观上,任何时刻只有一个程序真正在执行,即这些程序实在CPU上轮流执行的
并行:是指多个不同程序同时多个硬件部件上执行(多个CPU)
- 2.共享
操作系统与多个用户的程序共同使用计算机系统中的资源(共享有限的系统资源).
操作系统要对系统资源进行合理分配和使用,资源在同一时间段内交替被多个进程所用
互斥共享:打印机
同时共享:(可重入代码,磁盘文件)
操作系统要做到资源分配的最优化,并保护资源
- 3.虚拟
一个物理的实体映射为若干个对应的逻辑实体–分时或分空间
虚拟是操作系统管理系统资源的重要手段,可提高资源利用率
CPU–每个进程的"虚处理器"
存储器–每个进程都有独立的虚拟地址空间(代码+数据+堆栈)
显示设备–多窗口或虚拟终端
- 4.随机
操作系统必须随时对以不可预测的次序发生的事件进行响应并处理
进程的运行速度不可预知:多个进程并发执行,“走走停停”,无法预知每个进程的运行推进的快慢
难以重现系统在某个时刻的状态
4.典型操作系统的架构
windows操作系统:
简化后: