操做系统作了什么?
执行helloword程序
1.找到helloworld程序的相关信息,检查其类型是不是可执行文件,并经过程序首部信息,肯定代码和数据在可执行文件中的位置并计算出对应的磁盘块地址
2.建立一个新的进程,并将helloword执行文件映射到该进程结构,表示由该进程执行hellworld程序
3.为helloword程序设置cpu上下文环境,并跳到程序开始处
4.执行helloworld程序的第一条指令,发生缺页异常
5.操做系统,分配一页物理内存,并将代码从磁盘读入内存,而后进行执行helloworld程序
6.helloworld程序执行puts函数(系统调用),在显示器上写一字符串
7.操做系统找到要将字符串送往的显示设备,一般设备是由一个进程控制的,因此,操做系统将要写的字符串送给该进程
8.控制设备的进程告诉设备的窗口系统它要显示字符串,窗口系统肯定这是一个合法的操做,而后将字符串转换成像素,将像素写入设备的存储印象区
9.视频硬件将像素转化成显示器可接收的一组控制数据信号
10.显示器解析信号,激发液晶屏
11.在屏幕上看到了'helloworld'
总结:
用户程序 -os调用->进程管理
用户程序 -os调用->存储管理
用户程序 -os调用->文件系统
操做系统的定义与做用
1. 操做系统是计算机系统中的一个系统软件,是一些程序模块的集合
2. 特色
1. 有效:系统效率,资源利用率(cpu,io是否忙碌)
2. 合理:软硬件资源管理是否合理
3. 方便使用:用户界面与编程接口
3. 做用
1. 资源的管理者
1.硬件资源:
cpu,内存,设备(i/o设备,磁盘,网卡等)
2.软件资源:
磁盘上的文件,各种管理信息等
3.怎样管理资源:
1.跟踪记录资源的使用状况(哪些资源空闲)
2.肯定资源分配策略(算法)
1.静态分配策略
2.动态分配策略
3.实施资源的分配和回收
4.从资源管理的角度
1.进程/线程管理(cpu管理)
1.进程线程状态,控制,同步互斥,调度
2.存储管理
1.分配/回收,地址转换,存储保护,内存扩充
3.文件管理
1.文件目录,文件操做,磁盘管理,文件存取控制
4.设备管理
1.设备驱动,分配回收,缓冲技术
5.用户接口
1.系统命令,编程接口
2. 向用户提供各类服务
1.在操做系统之上,从用户角度来看
1.操做系统为用户提供来一组功能强大,方便易用的命令或系统调用
2.典型的服务
1.进程的建立,执行,文件和目录的操做,i/o设备的使用,各种统计信息
3. 对硬件机器的扩展
1. 应用程序
--------虚拟机器界面
操做系统
--------物理机器界面
硬件
操做系统的主要特征
1.并发:处理多个同时性的能力
1.问题(活动切换,保护,相互依赖的活动间的同步)
1.计算机系统同时运行多个程序,单cpu上
1.宏观上这些程序是同时执行
2.微观上任什么时候刻只有一个程序真正在执行
2.并行 多指不一样程序同时在多个硬件部件上执行
2.共享:操做系统与多个用户程序共同使用计算机系统中的资源,操做系统要对系统资源进程合理分配和使用,资源在同一个时间段内交替被多个进程所用
1.互斥共享(打印机)
2.同时共享(可重入代码,磁盘文件)
3.虚拟
1.一个物理实体映射为若干个对应的逻辑实体,分时或分空间
2.虚拟是操做系统管理系统资源的重要手段,可提升资源利用率
1.cpu --每一个进程的'虚处理机'
2.存储器 --每一个进程都有独立的虚拟地址空间(代码+数据+堆栈)
3.显示设备 -- 多窗口或虚拟终端
4.随机:操做系统必须随时对以不可预测的次序发生的事件进行响应并处理
1.进程的运行速度不可预知,多个进程并发执行,走走停停,没法预知每一个进程的运行推动的快慢
2.难以重现系统在某个时刻的状态(包括重现运行中的错误)
典型操做系统的架构
windows系统体系结构
系统进程 服务进程 用户进程 环境子系统
动态连接库(DLL)
-------------------------------------用户态
系统服务分发起 内核态
内核态可调用接口
执行体
内核 设备驱动程序 图形与窗口
硬件抽象层(HAL)
---------------------------------------物理硬件
硬件
应用程序
系统功能调用
操做系统
计算机硬件
UNIX操做系统
-------------------------用户态
系统调用接口
文件系统 进程控制子系统
-------------------------硬件
linux操做系统
-------------用户态
系统调用接口
文件系统
虚拟内存管理
进程调度
物理内存管理
驱动管理
网络管理
异常处理
中断处理
驱动管理
-------------
安卓系统
1.android应用程序
2.应用程序框架
3.系统库和android运行时
4.linux内核
操做系统的分类
1. 批处理操做系统
1.工做方式
1.用户将做用交给系统操做员
2.系统操做员将许多用户的做用组成一批做业,输入到计算机系统中,在系统中造成一个自动转接的连续的做业流
3.启动操做系统
4.系统启动,依次执行每一个做业
5.由操做员将做业结果交给用户
2.追求目标
1.提供资源利用率,增长做业处理吞吐量
3.批处理系统中的做业包括
1.用户程序
2.数据
3.做业说明书
4.成批:一般用若干个做业组成,用户提交做业后只能等处理结果,不能干预本身做业的执行
5.批做业处理:
1.对一批做业中的每一个做业进行相同的处理,从磁带读取用户做业和编译连接程序,编译连接用户做业以生成可执行程序,启动执行,执行并输出结果
6.问题:
1.慢速的输入输出处理直接由主机来完成,输入输出时,cpu处于等待状态
7.解决方案:
1.卫星机,完成面向用户的输入输出(纸带或卡片),中间结果暂存在磁带或磁盘上
8.spooling系统技术
1.在一台计算机上利用磁盘做缓冲,将输入,计算,输出分布组织成独立的任务流,使i/o和计算真正并行
2. 分时系统
1.时间片
操做系统将cpu的时间划分红若干个片断,称为时间片
2.分时系统与批处理系统结合
3. 实时操做系统
1.是指计算机可以及时响应外部事件的请求,在规定的严格时间内完成对该事件的处理,并控制全部实时设备和实时任务协调一致的工做
4. 我的计算机操做系统
5. 网络操做系统
1.按网络体系结果协议标准开发的软件
6. 分布式操做系统
1.以计算机网络为基础,或以多处理机为基础
7. 嵌入式操做系统
1.在各类设备,装置或系统中,完成特定功能的软硬件系统汽车,手机,电视机,mp3播放器