操作系统
操作系统作用
进程管理
内存管理
存储管理
保护和安全
分布式系统
计算环境
开源操作系统
操作系统作用
硬件的interrupt
软件的错误或者请求创造的异常或者陷阱 的检查以及修复
处理请求操作系统的服务
处理进程问题 无限循环,进程相互修改,或操作系统进程
处理定时器任务,防止无限循环/进程占用资源
将interrupt设置在指定时间内
操作系统递减计数器
当计数器为0时,产生一个interrupt
从用户模式到内核kernel模式
双模式操作系统允许操作系统保护自己和其它系统组件
用户模式和内核模式
模式由内核提供
提供区分系统何时运行用户代码或内核代码的能力
一些指令拥有特权,只能在内核模式下执行
系统调用将模式更改为内核,从调用返回将其作用到用户
进程管理
进程是执行中的程序,它是系统内的一个工作单元.程序是一个被动的实体,进程是一个主动的实体.
一个线程里面可以有多个进程
进程需要资源来完成它的任务
CPU IO memory file
初始化数据
进程终止时,要尽可能的回收可重用资源
单进程有一个程序计数器,指定下一条命令的位置
进程按照顺序执行,每次执行一个.直至完成
多线程 每个线程有一个程序计数器
通常程序有许多进程,一些用户,一些操作系统在一个或者多个cpu上同时运行
通过在进程/线程之间多路复用cpu实现并发
进程管理
操作系统负责以下与进程管理有关的活动
创建删除用户和程序进程
暂停恢复进程
为进程同步提供机制
为进程通信提供机制
提供死锁处理机制
内存管理
为了执行内存中所有的指令
处理前后所有的数据都在内存中
内存管理决定什么时候内存中有什么
优化cpu利用率和计算机对用户的响应
内存管理活动
跟踪内存中那些部分目前正在被谁使用
决定将那些数据移入和移出内存
根据需要分配和释放内存
存储管理
OS提供统一,逻辑的信息存储视图
将物理属性抽象为逻辑存储单元 -文件
每个介质由设备(磁盘驱动器,磁带驱动器)控制
不同属性包括访问速度,容量,数据传输速率,访问方法(顺序或随机)
文件管理系统
文件通常组织成目录,对大多数系统进行访问控制,以确定谁可以访问
OS活动包括
创建删除文件和目录
操作文件和目录的指令
将文件映射到二级存储
将文件备份到稳定介质上
大容量管理
通常用于存储不适合主内存的数据或需要保存很长一段时间的数据的磁盘
正确的管理是至关重要的
OS的整体速度取决于磁盘子系统及其算法
OS的作用
空间管理
存储分配
磁盘调度
有些存储不需要快
第三级存储,包括光盘,磁带
不同级别 存储的性能
存储层次结构的级别之间的移动可以是显式的 也可以是隐式的
容量和速度正好相反
寄存器>缓存>主内存>硬盘
将整体A从磁盘迁移到寄存器
多任务环境必须小心使用最新的值,无论它存储在存储层次结构的何处
多处理器环境必须在硬件上提供缓存一致性.这样所有的cpu的缓存中都有最新的值
分布式环境的情况更加复杂
一个数据可能存在多个副本
IO子系统
操作系统的一个目的是为用户隐藏复杂的硬件设备
io子系统负责
内存管理的io包括
缓冲(在数据传输时,临时存储数据)
缓存(为了提高性能,将部分数据存储在更快的容器中)
假脱机 同时在线的外围操作
一般设备的驱动器接口
特定硬件设备的驱动程序
保护和安全
保护-任何控制进程和用户访问OS定义的资源的机制
安全- 对系统内部和外部的攻击进行防御
范围很广泛 包括拒绝服务,蠕虫,病毒,身份盗窃,服务盗窃
系统通常首先区别用户,以确定谁可以访问什么
用户身份(用户id 安全id)包括名称和关联的编号,每个用户只有一个
然后将用户id和所有文件关联,确定对该用户的访问控制进程
组 标识符(组id)允许定义一组用户并管理控件,然后还与每个进程,文件相关联
权限升级,允许用户更改为具有更多权限的有效id
分布式系统
计算机环境
传统的计算机
办公环境
个人电脑连接到网络,终端连接到提供批量和分时服务的大型机和小型机
现在门户网站允许网络和远程系统访问相同的资源
家庭网络
以前是单系统,现在是调制解调器
现在与NAT(ip共享)联网
ADSL/光纤到家(FTTH)
无线局域网(IEEE802.11n)+千兆以太网
点对点计算机
分布式系统的另一个模型
P2P不区分客户端和服务端
所有节点都被认为是对等节点
每一个都可以作为服务端和客户端
节点必须加入p2p网络
向网络上的中心节点查找服务,注册服务
广播服务请求,并通过发现协议响应服务请求
客户机-服务器计算
许多系统服务器,响应客户端生成的请求
计算服务器为客户端提供请求服务(既数据库)的接口
文件服务器为客户端提供了存储和检索文件的接口
计算环境
网络已经无处不在,有超过一亿的网站
在类似的服务器之间管理web流量的新设备类型:负载均衡
开源操作系统
操作系统以源代码的形式提供,而不仅仅是二进制的闭源文件
linux
BSD
unix
Sun Solaris
Android(谷歌)