系统
1.进程和线程的区别?
1. 本质区别: 进程是资源调度以及分配的单位; 线程是CPU调度的基本单位; 2. 所属关系: 一个线程属于一个进程。一个进程可以拥有多个线程。 3. 地址空间:进程有独立的虚拟地址空间;线程没有独立的地址空间,线程有栈,程序计数器(TC),本地存储(TLS)等少量独立空间; 4. 内存: 系统会为每个进程分配不同的内存空间;系统不会为线程分配内存;线程所使用的资源来自其所属的进程资源。 5. 并发性: 进程的并发性较低;线程的并发性较高;比较基准是(CPU 会切换执行,切换执行不同的实体)切换效率。进程切换效率低,他所属的资源多。线程切换效率高。 都会涉及到上下文的切换。 上下文就是进程所属的资源。 对于单个CPU,系统会将cpu运行时间划分为多个时间段,再将时间段分配给各个线程执行。这个就是单位时间内的de并发的数量。 6. 健壮性:一个进程崩溃后,不会影响其他进程;一个线程崩溃后,导致整个进程崩溃。进程的健壮性高,线程的健壮性低。进程具备独立的运行环境,进程隔离性强一些。 虚拟地址空间, 会有一个页表,通过页表查找真实的地址空间。
实时系统的特点
1. 必须在有限时间内完成的任务叫做实时任务,用来完成实时任务的系统叫做实时系统。 2. 实时任务具有确切的完成期限,实时系统分为软实时系统和硬实时系统,硬实时系统对时间要求严格,对于超时零容忍。 3. 实时任务的后动是不可逆的。 4. 实时任务大多由外部事件激活的。
static 有什么用途?
1. 修饰对象: 变量和函数 2. 作用范围: static 修饰的变量,修改了变量的存储位置,生命周期和作用范围;存储位置是内存的静态存储区,生命周期是程序的运行周期,在.c文件内,函数内部的局部 左右范围是函数内部。文件内全局变量,作用范围是整个文件。在头文件中的作用范围是包含该头文件模块。 3. 函数,在文件内部,作用范围是整个文件。 在模块内部避免命名重复。