学习目标:
计算机系统由哪些组件构成?
计算机系统的组成:
计算机硬件:
处理器、存储器、I/O设备、系统总线。
计算机软件:
操作系统、运行在操作系统上的应用软件。
程序的执行流程:
程序是由一组保存在存储器的指令组成的。程序的执行就是不停的取指执行的过程。
指令的执行是流水线操作。就单条指令而言,一条指令先是地址被存放在PC寄存器,然后被取出存放到指令寄存器,最后被执行。但从总体上看,一条指令被存放在指令寄存器时,它的下一条指令的地址就被保存到了PC寄存器。这个保存地址,取指令存放到指令寄存器,执行三个动作是同时进行的。
指令的行为分类:
指令的行为大致可分为4类:处理器和存储器之间的数据传输、处理器和I/O设备的数据传输、数据相关的算术操作或逻辑操作、控制程序行为。
操作系统的目标和功能:
目标:
方便:使计算机更便于使用。
有效:允许以更有效的方式使用计算机系统资源。
扩展能力:允许在不妨碍原有服务的前提下有效地开发、测试和引进新的系统功能。
功能:
程序开发:如编辑器和调试器,帮助程序员开发程序。
程序运行:提供程序运行时环境,包括把指令和数据加载到内存、初始化I/O设备和文件等等。
I/O设备访问:每个I/O设备的操作都需要自己特有的指令集或控制信号,操作系统隐藏这些细节,提供统一的读写控制接口。
文件访问控制:隐藏存储介质中文件数据的结构细节,提供一种简单统一的访问控制方式。并拒绝不安全、未授权的访问。
系统访问:对于某些特殊的系统资源和公共资源,操作系统必须提供对资源访问的保护,还必须解决资源竞争时的冲突问题。
错误检测和响应:计算机系统运行时可能发生各种各样的错误,操作系统必须提供响应以清除错误条件,使其对正在运行的应用程序的影响最小。
记账:一个好的操作系统可以收集对各种资源的利用率统计数据,监控如响应时间之类的性能参数,以用于将来对操作系统功能的调整和提高。
操作系统设计和实现的4个关键领域:
1.进程:
设计进程的目的:为了更好地实现多道程序设计、分时和实时事务处理系统。
进程指的是计算机中正在运行的程序的一个实例,计算机系统分配资源的最小单位。
进程的组成部分:程序实体、所需要的相关资源、执行上下文。其中,执行上下文是操作系统管理进程的根本,由操作系统直接管理。一般包括各种处理器寄存器的内容,操作系统使用的信息(如进程优先级及进程是否在等待特定I/O事件)。
2.内存管理:
为了支持模块化程序设计,操作系统需要有效且有条理地控制存储器分配。
内存管理地5个责任:进程隔离、自动分配和管理、支持模块化程序设计、保护和访问控制、长期存储。
在典型情况下,操作系统使用虚拟存储和文件系统实现内存管理。
3.信息保护和安全:
操作系统相关地安全和保护问题可以分为以下4类:保护系统不被打断、保证用户不能读到未授权地数据、保护数据不被未授权地修改、用户身份的正确认证和数据的合法性认证。
4.调度和资源管理:
资源分配和调度策略需要考虑的三个因素:提供给所有进程几乎相等和公平的访问机会、对于不同的服务要求,根据实际情况动态地进行决策,获取最大的吞吐量和最小的响应时间。
调度的一种实现:操作系统维护者多个队列。短程队列中存放可随时准备运行的进程,长程队列中存放等待进程内存的进程。如果运行中的进程等待某种事务处理,就进入相应的事务处理等待进程。
从短程队列中选择进程执行的策略:1.时间片轮状技术;2.优先级调度。
操作系统内核的典型功能:
进程管理相关:
进程的创建和终止。
进程的调度和分派。
进程切换。
进程同步以及对进程间通信的支持。
进程控制块的管理。
内存管理相关:
给进程分配地址空间。
内存交换。
内存页和段的管理。
I/O管理相关:
缓冲区管理。
给进程分配I/O通道和设备。
支持功能:
中断处理。
记账。
监视。
linux的内核组件:
Signal:内核通过信号通知进程。
系统调用:通过系统调用来请求系统服务。
进程和调度器:创建、管理、调度进程。
虚拟内存:为进程分配和管理虚拟内存。
文件系统:为文件、目录和其他文件相关的对象提供一个全局的、分层次的命名空间,提供文件系统函数。
网络协议:为用户的TCP/IP协议套件提供套接字接口。
字符设备驱动:管理向内核一次发送或接收一个字节数据的设备。
块设备驱动:管理以块为单位向内核发送和接收数据的设备。
网络设备驱动:对网络接口卡和通信端口提供管理,它们负责;连接到网桥或路由之类的网络设备。
陷阱和错误:处理CPU产生的陷阱和错误。
物理内存:管理实际内存中的内存页池和为虚拟内存分配内存页。
中断:处理来自外设的中断。