什么是操作系统
概念
操作系统作用:管理硬件设备并为用户程序提供一个到硬件的接口。
硬件:物理设备、微体系结构(包括数据通道)、机器语言。
数据通道:每个click,CPU将操作数取出并进行运算,将结果存在寄存器中。
总结
操作系统的顶层是编辑器、编译器、解释器,是在用户态下运行的。
操作系统任务是在相互竞争的程序之间控制计算机资源的分配。
资源管理包括两种资源复用方式 时间和空间。
时间是指作业使用资源的顺序。
空间则指多个任务同时使用一个资源(内存的使用)。
操作系统的历史
第一代
开始使用继电器,运算周期是秒级。之后采用了真空管,速度大大提升,纯粹使用机器语言.
第二代
使用了晶体管,被称为大型机。出现了程序语言。
批处理系统:收集全部的作业并利用小型计算机将其读到磁带上(适合读写的计算机),然后磁带放到机房中利用特殊的程序(操作系统前身)读取磁带的作业并计算,把输出写到输出磁带中,并不打印。最后将输出磁带放到小型计算机上进行脱机(不和主计算机相连)打印。
第三代
主要特点是采用了集成电路和多道程序设计。
多道程序设计:将内存分为几部分,当一个作业在等到I/O时,另一个作业可以使用CPU。他们在内存中互相独立。可以直接读取作业,但执行需要排队,因此对调试不友好,因此提出分时系统。
分时系统:每个作业可以分的一定的CPU执行时间,因为调试程序执行的所需时间很短,所以很快就可以获得结果,而不用等待前面的大作业执行结束。
第四代
由于大型集成电路的发展,微型计算机出现。出现了CP/M、MS-DOS等操作系统。后来又出现了图形用户界面。微软公司受其影响,有设计了基于MS-DOS的Windows 95。
操作系统大观
大型机操作系统:房间大小的计算机由于大作业处理的需求,具有强大的I/O处理能力。同时处理大量的作业。主要提供:批处理、事务处理(大量小请求)和分时三个服务。
服务器操作系统:服务器是可大可小的计算机,通过网络来为多个用户提供服务(文件、打印等)。
多处理操作系统:将多个CPU连接成单个系统,即并行计算机、多处理计算机。
个人计算机操作系统:主要是用户接口友好。
实时操作系统:将时间作为关键参数,某些指令必须在指定的时间内完成。(流水线要求)
嵌入式操作系统:更加的小型化,内存与耗电也比较低。
智能卡操作系统:运行在一个含有CPU芯片的信用卡设备上,比嵌入式更小。
计算机硬件介绍
处理器
从内存中取出指令并执行。每个CPU周期,先取出指令,然后解码获得指令内容和操作数,最后进行执行,并将结果写回。
利用寄存器减少内存读写的次数。
程序计数器:保存下一条指令的内存地址。
堆栈指针:指向内存中当前栈的顶端。(栈包含程序的参数、临时变量等)
程序状态字(PSW):包含条件码位、CPU优先级、用户态/核心态、各种控制位。
流水线:多指令操作。例如将CPU分为取指单元、解码单元和执行单元,可以同时对三条指令进行操作。
超标量CPU:含有多个 执行单元,将解码后的指令放到缓存中等待执行(指令可以不按顺序执行)。
系统调用:用户程序执行核心态的特权指令的方式。
用户态可以执行的指令是核心态的一部分。
存储器
目标:速度快、容量大、便宜。
层次:寄存器(1K)->高速缓存(1MB)->主存(64-512MB)->磁盘(5-50GB)->磁带(20-100G)。
寄存器:CPU中,几乎没有延迟。
高速缓存:由硬件控制,主存被分割为高速缓存行,最常用的行更接近CPU。当程序读取时,硬件会检查是否高速缓存行是否在高速缓存中。在则称为命中(2click),否则则需要访问内存,时间代价高。
主存:也称随机访问存储器(RAM)。
磁盘:随机访问数据比较慢(磁盘是机械装置,启动移动慢)。磁道是指一片磁片上的环形区域。柱面是指多个磁片上的等半径的磁道合在一起。
磁带:便宜并且可以移动。
ROM:只读存储器,出场则编程完毕,无法修改。一般用于存放计算机的自居装入模块。
EEPROM和Flash RAM:电可擦除ROM和闪存与ROM类似,但是可以进行擦除和重写(时间长且可能有损)。
CMOS:易失的,一般用于时间存储,独立电池持续供电,保持时间的更新。
程序地址重定位和程序保护:由于编译链接时不知道装载地址,所以利用基址寄存器(进入一个程序时改为这个程序开始的地址)和界限寄存器(程序和数据的长度)。
内存管理单元:完成从虚拟地址到物理地址的映射。
上下文切换:从一个程序切换到另外一个程序。
I/O设备
包括控制器和设备本身。控制器是指电路板上的芯片,从操作系统接受命令,物理上控制设备。
设备驱动程序:专门与控制器对话的软件。
将设备驱动程序装入OS的方式:
1:将内核与设备驱动程序链接,然后重启。
2:在OS文件中设一个项,通知该文件需要设备驱动,然后重启。
3:在运行时接受新的设备驱动程序并将其安装好。
实现IO的方式:
1:忙等待:用户程序发出系统调用,内核发出对应的驱动程序调用,驱动程序启动IO轮询设备。但结束后驱动程序将数据发送到需要的地方并返回。
2:中断响应驱动程序启动设备,当控制器检查到设备操作完成时,发出中断通程序知操作完成。驱动程序在设备完成后发出IO中断,驱动程序立即返回。
3:直接存储器存取DMA:使用DMA在控制器和存储器之间的位流,不需要CPU的参与。CPU在对DMA设置完操作的参数后启动DMA,就可以返回。完成后DMA会发出中断。
总线

PCI桥芯片的内部内存总线速率为100MHz.
通用串行总线USB用于慢速IO设备,一般为1.5MB/s.
SCSI是高性能总线,用于高速硬盘,速度可达160MB/s。
即插即用:系统自动收集IO设备的信息,集中分配中断级别和IO地址,然后通知每块卡使用的数值。
利用双亲板上的系统BIOS(基本输入输出系统)。
计算机启动时BIOS首先检查RAM的数量,以及其他设备是否正常安装。然后扫描ISA和PCI总线上连接的设备,记录下遗留设备(中断和IO地址固定)和即插即用的设备。BIOS尝试存储在CMOS中的设备清单进行设备引导。然后可以修改这个清单,否则使用软盘引导或CD-ROM。引导设备第一个扇区被读入内存执行,检查到装载引导装载程序的活动分区然后从该分区中读入第二个引导装载程序,并启动。
最后OS查询BIOS获得配置信息,并检查设备驱动程序。
操作系统概念
进程
进程:正在执行的一个程序。进程的地址空间是进程可以读写的地址区间。
进程表:储存了每一个进程对应的所有信息,数字结构,值是对应进程的信息。
进程树:每个进程又可以产生子进程,进程树则表示这种父子进程的关系。
死锁
当两个进程交互等待时可能会进入不能解脱的状态,即为死锁。
目录
绝对路径以’/'开头,表示从根目录开始,相对路径(当前工作路径开始)则不用。
安装文件系统:软盘上的文件系统可以舍去根目录而将子目录作为硬盘上的文件系统中的某一空目录的子目录进挂载。
特殊文件:使IO设备的读写和文件的读写一样。分为块特殊文件(可随机存取的块组成设备)和字符特殊文件(用于打印机等字符流数据)。
文件安全:OS对每个文件提供9位保护码。分为三个位域,分别用于所有者、所有者同组的其他成员、其他人三个。每个位域有三个二进制字,即为rwx位。
shell
不是操作系统的组成部分。
系统调用
过程
参数入栈-》函数调用-》系统调用编号存在寄存器中-》切换到核心态-》根据系统调用编号执行系统调用处理程序-》处理程序完成,切换到用户态-》函数调用返回-》堆栈内清除

进程管理
fork()创建子进程并返回pid。其在子进程中值为0,在父进程中子进程的PID。
waitpid()等待子进程pid的中止,并将statloc设为子进程的退出状态。
execve()根据要执行的文件名称、变量数组指针和环境数组指针。用于执行shell的命令,比如execve("cp",["file1","file2"])则执行shell cp file1 file 2。
文件管理
lseek可以改变文件位置指针的指向,参数为文件描述符、文件位置、文件位置是相对于当前位置还是起时或终止位置。
目录管理
mount("/dev/fd0","/mnt",0) 可以将fd0下的目录都挂载到mnt目录下。
操作系统结构
单体系统
分为主进程、服务进程和实用进程三层。
主进程:用于调用请求的服务进程。
服务进程:用来执行系统调用
实用进程:用于辅助服务进程。
分层系统
上一层都是在下一层的基础上构建。
虚拟机
虚拟机监控器:在裸机上运行并具备多道程序设计功能,并向上提供多个虚拟机(与裸机相同)
外核
在核心态中运行的程序,任务是为虚拟机分配资源,并进行安全检查。
客户机服务器模型
将代码尽可能地从核心中移除,即在用户空间中实现操作系统的多数功能。将整个操作系统分为若干部分,每个部分都比较小,一个服务器崩溃不会导致整个系统的停机。
647

被折叠的 条评论
为什么被折叠?



