一、程序员进阶架构师的基础知识【计算机基础】
二、程序员进阶架构师的基础知识【操作系统】
三、程序员进阶架构师的基础知识【计算机网络基础】
四、程序员进阶架构师的专业知识【软件工程基础】
五、程序员进阶架构师的专业知识【UML建模工具】
六、程序员进阶架构师的专业知识【系统分析】
七、程序员进阶架构师的专业知识【系统设计】
八、程序员进阶架构师的专业知识【架构设计】
九、程序员进阶架构师的专业知识【架构质量及评估】
十、程序员进阶架构师的专业知识【软件测试及维护】
计算机由硬件和软件组成,硬件包括CPU、存储器、输入输出设备、主板等《计算机基础》,软件包括系统软件以及其他应用软件,而操作系统就属于系统软件,它是硬件基础上第一层软件,是硬件和其他软件的沟通桥梁,目前常见的操作系统有Windows、Linux、unix、Mac OS等。
操作系统在计算机中充当着指挥者,指挥硬件和软件去完成希望计算机能完成的任务,同时也充当着监视者,监视硬件资源、软件资源以及其他系统资源的使用情况。主要功能可以分为处理机(CPU)管理、存储器管理、设备管理、文件管理和用户接口。
处理机管理的工作是对CPU资源进行合理的分配使用,以提高处理机利用率,并使各用户公平地得到处理机资源。
处理机调度分为:作业调度、内存调度、进程调度。
可以看到处理机调度也就是对进程的调度,调度的过程中存在3个状态,分别是运行状态、就绪状态、阻塞状态,也叫三态模型。
进程通常由程序、数据集合、进程控制块PCB组成。PCB是一种数据结构,是进程存在的唯一标识,有以下三种数据结构:
前驱图是一个有向无循环图,由节点和有向边组成。节点代表各程序段的操作,而节点间的有向边表示两个程序存在的前趋关系。用这种图可以描述多个程序或进程之间的执行顺序,执行顺序由左向右,由上向下执行。
下图前驱图可记为:(P1,P2),(P1,P4),(P2,P3),(P2,P5),(P3,P4),(P3,P6),(P4,P7),(P5,P6),(P7,P6),(P6,P8)。同时有10个前驱关系,P1为初始节点,P8为终止节点。
存储器管理的对象是主存,也称内存。它的主要功能包括分配和回收主存空间、提高主存利用率、扩充主存、对主存信息实现有效保护。
存储管理方案的主要目的是解决多个用户使用主存的问题,其存储管理方案主要包括分区存储管理、分页存储管理、分段存储管理、段页式存储管理以及虚拟存储管理。
分区存储管理是把主存的用户区域划分成若干区域,每个区域分配给一个用户作业使用,并限制只能在自己的区域运行。分区管理划分为固定分区、可变分区、可重定位分区。
把可分配的主存储器空间分割成若干个连续区域,每个区域的大小可以相同,也可以不同。为了说明各分区的分配和使用情况,存储管理需设置一张“主存分配表”。主存分配表指出各分区的起始地址和长度,表中的占用标志位用来指示该分区是否被占用了,当占用的标志位为“0”时,表示该分区尚未被占用。进行主存分配时总是选择那些标志为“0”的分区,当某一分区分配给一个作业后,则在占用标志栏填上占用该分区的作业名。采用固定分区存储管理,主存空间的利用不高。
可变分区方式是按作业的大小来划分分区。当要装入一个作业时,根据作业需要的主存量查看主存中是否有足够的空间。若有,则按需要量分割一个分区分配给该作业;若无,则令该作业等待主存空间。
可变分区可以克服固定分区方式中的主存空间的浪费。
- 可变分区调度算法
首次适应算法:每次分配时,总是顺序查找未分配表,找到第一个能满足长度要求的空闲区为止,作业装入后剩余空间仍为空闲区,这种分配算法会造成较多的“碎片”。
最佳适应算法:从空闲区中挑选一个能满足作业要求的最小分区,这样可保证不去分割一个更大的区域。
最差适应算法:挑选一个最大的空闲区分割给作业使用。
在可变分区分配方式中,经过一段时间的分配和回收后,内存中会产生很多小的空闲分区。可重定位分区分配方式就是在可变分区分配方式的基础上增加紧凑功能,即在找不到足够大的空闲分区、而空闲分区总和却能满足用户的要求时,对内存空间进行紧凑。
分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页,并为各页加以编号,从0开始,如第0页、第1页等,称为页号。相应地,也把内存空间物理地址分成与页面相同大小的若干个存储块,称为**(物理)块**,也同样为它们加以编号,如0#块、1#块等等称为块号。
在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块中,在这期间会存在逻辑地址转换物理地址的过程,这里的转换主要是逻辑地址的页号转为物理地址的块号,在页表的帮助下,它将页号转换成块号,找到对应的物理地址。
分段存储管理为每个段分配一个连续的地址,而进程中的段可以离散的分配到主存的不同段中,在系统中为每个进程建立一张段表,通过段表找到每个段对应的主存区。
段页式系统的基本原理,是分段存储管理方式和分页存储管理方式原理的结合,即先将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。
不管是分区存储、分页存储、分段存储都是需要将整个程序装入内存才能运行,当程序的存储空间要求大于实际的内存空间时,就使得程序难以运行了。虚拟存储是把一个程序所需要的存储空间分成若干页或段,程序运行用到页和段就放在内存里,暂时不用就放在外存中.当用到外存中的页和段时,就把它们调到内存。
I/O设备是计算机组成的一部分,可以向计算机输入数据或者接收计算机的数据进行展示。设备管理是调整CPU与输入输出设备之间的关系。输入输出设备和CPU的关系可以分为两种,一种是两者串行工作,一种是两者并行工作,按照这两种关系可以分为程序控制、中断、DMA三种工作方式。
当某进程要启动某个IO设备工作时,便由CPU向相应的设备控制器发出一条IO命令,然后立即返回继续执行原来的任务。
中断驱动IO比程序IO方式更有效,但注意到,它仍是以字(节)为单位进行IO的,每当完成一个字(节)的IO时,控制器便要向CPU请求一次中断。采用中断驱动IO方式时的CPU,是以字(节)为单位进行干预的。如果将这种方式用于块设备的IO中,显然是极其低效的。为了进一步减少CPU对IO的干预而引入了直接存储器访问方式。该方式的特点:
在现代计算机系统中,用户的程序和数据,操作系统自身的程序和数据,甚至各种输出输入设备,都是以文件形式出现在操作系统的管理者和用户面前。文件管理是对文件位于外存储器的存储空间进行组织,分配和回收,负责文件的存储,检索,共享和保护。