学习笔记4: 3-19

(1)算法复杂度: 除O(1)外,时间复杂度随问题的规模增大而增大; 算法的语句频度越高,高到多出一个量级,复杂度就变了;算法不同的策略,复杂度有可能是不同的;算法的时间复杂度与选择的程序设计语言无关。
(2)算法的5个基本特征:确定性、有穷性、输入、输出、可行性
(3)线性结构是一个有序数据元素的集合。
数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构,常用的线性结构有:线性表,栈,队列,双队列,数组,串。非线性结构的逻辑特征是一个结点元素可能对应多个直接前驱和多个后继,如树,表,多维数组等。
(4)计算机由运算器、控制器、存储器、输入设备和输出设备等五个逻辑部件组成。其中运算器、控制器和寄存器等组成CPU。
(5)管道是一种固定大小的缓冲区,管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在于内存中。它类似于通信中半双工信道的进程通信机制,一个管道可以实现双向的数据传输,而同一个时刻只能最多有一个方向的传输,不能两个方向同时进行。管道的容量大小通常为内存上的一页,它的大小并不是受磁盘容量大小的限制。当管道满时,进程在写管道会被阻塞,而当管道空时,进程在读管道会被阻塞、
(6)当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。
当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。
内核态: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序。
用户态: 只能受限的访问内存, 且不允许访问外围设备. 占用CPU的能力被剥夺, CPU资源可以被其他程序获取。
(7)内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。内存泄露是程序设计的bug,与线程数无关。
(8)拼接技术:将内存中的所有作业进行移动,使它们全都桕邻接.这样,即可把原来分散的多个小分区拼接成一个大分区,这时就可把作业装入该区。这种通过移动内存中作业的位置,以把原来多个分散的小分区拼接成一个大分区的方法。
对换技术:是指把内存中暂时不能运行的进程或者暂时不用的程序和数据调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据调入内存。
SPOOLing技术:为了缓和CPU的高速性与I/O设备低速性间的矛盾,引入了脱机输入、脱机输出技术。
(9)Linux进程间通信:管道、信号、消息队列、共享内存、信号量、套接字(socket)
Linux线程间通信:互斥量(mutex),信号量,条件变量
Windows进程间通信:管道、消息队列、共享内存、信号量 (semaphore) 、套接字(socket)
Windows线程间通信:互斥量(mutex),信号量(semaphore)、临界区(critical section)、事件(event)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值