一、引言
随着找工作的不断深入,发现在算计技术基础这块基本上是空白,看来还是得看书复习一下。
软件技术基础一般包括数据结构、操作系统、软件工程方法、数据库和计算机网络。而这其中的每一部分知识点,都可以看做一本教材了。如果是计算机出身,或寻找软件开发方向的工作,这部分的知识,每个单独看一本书是有必要的,但是对于算法工程师,还是稍微简要的了解最基础的知识就可以了。
数据结构与编程靠的比较紧密,前面已经有个大概的知识框架了,而后面的部分,是这次主要复习的点。
二、操作系统基础
1.概述:计算机资源包括硬件(cpu、存储器和外设)软件(操作系统、应用程序以及数据),一般有硬件-操作系统-系统应用程序-用户程序组成。
1.1操作系统的发展:手工操作阶段、早期批处理阶段、管理程序阶段(加入了中端机制)、多道程序与多批处理系统(cpu进行并发程序执行);
1.2操心系统的功能:处理器管理(进程控制、进程同步、进程通信。进行调度)、存储管理(内存分配与回收、存储保护、地址映射、内存扩充、设备管理)、文件管理、用户接口;
1.3操作系统的特征:并发性(多道程序同时运行)、共享性(多个进程共同使用有限的资源,包括互斥共享,并发共享(交替资源访问)。虚拟性(虚拟地址)不确定性);
1.4操作系统的分类:批处理操作系统(多道:系统中有多个作业,成批:作业过程中不允许用户的干预)、分时操作系统(运行多用户同时对资源进行分享,具有多路性、交互性、独立性、及时性)、实时操作系统(具有及时响应的特点,精密控制中,及时性、高可靠性、多路性、加的你的交互功能)、网络操作系统(提供可靠的网络通信功能,提供网络服务)、分布式操系系统(以网络为基础,实现逻辑上耦合,物理上分散,同意的接口界面。)、嵌入式操作系统;
2.处理机制
2.1进程:可并发后自行的程序在给定的数据集上的一次执行过程;具有声明周期,具有动态性、并发性(间隔执行)、独立性(可以被系统分配资源,能进行处理调度,进程之间相互独立)、异步性(不可预知的执行顺序、时间);对应于PCB(进程控制块),包含进行的标示信息,状态信息,调度今夕,控制信息;
进程状态的转换:包括就绪状态,执行状态,阻塞状态;三者之间可以单步转换,此外除执行状态外包括挂起状态。
2.2进程之间的互斥与同步:互斥关系(对同一资源的享用相互约束)、同步关系(在执行的过程中相互合作完成同一项任务);
进程的互斥:隐资源的共享而产生互斥(资源只能由同一进程在某一时刻使用),这种资源称为临界资源,那些代码为临界区;进程同步遵循空间让进。忙则等待。有权等待,让全等待等。
2.3进程调度:包括低级中中级以及高级调度;为了记录所有进程的执行情况,确定分配机制,处理机的回收与分配。
2.4死锁:进程之间拥有彼此需要的资源而形成阻塞。必要条件有:互斥条件(资源只能由一个进程战友)、不剥夺条件(占有了的不能被剥夺)、部分分配原则(占有现有资源,并申请新的),环路保护(资源申请按照顺序来);
防死锁:静态分配策略、允许剥夺、资源使用顺序法;银行家算法;加入死锁检测与接触算法;
2.5进程的通讯:消息缓冲、管道通信、信箱通信;
线程:是进程的执行实体,不能申请资源,具有并发性有用线程控制块,状态有执行、就绪、阻塞。特点:与进程的区别,有并发性,包含三状态,有操作系统或用户完成,开销小。
3。作业管理与接口
3.1作业控制块:JCB。状体有进入、后备、运行和完成;调度算法:先来先服务,最高优先级,最短作业法,最高响应作业法,
3.2操作系统接口:命令接口,系统调用,图形接口:对话框,窗口;作业控制方式:命令,菜单,窗口;
4.存储管理
功能:内存分配和回收,内存共享、存储保护,地址映射(动态地址和静态地址),内存空间的扩充;
分区存储管理:固定分区,可变分区(包含分区控制块)、存储分配策略(首次适应算法,最佳适应算法,最坏适应算法),覆盖与交换;
虚拟存储管理:分页存储管理:段式存储管理;段页存储管理;
5.设备管理:
包括IO设备,存储设备;又分为独占设备,共享设备,虚拟设备;
功能:提供接口,发挥设备使用效率;
数据控制方式:中端控制方式,DMA控制方式,通道控制方式;
6.文件管理;
文件分类:按照文件性质,内容,保护级别;
文件系统的功能;管理存储空间,存放,地址映射,操作,共享;
文件组织形式,物理结构(连续,链式,索引)
文件目录,包含文件控制块,文件共享保密保护;
文件的使用:创建,打开,读写,关闭;
参考书籍:
1《软件技术基础》