操作系统概念整理

1、进程和线程区别

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,它是系统进行资源分配和调度的一个独立单位。

线程是进程的一个实体,是CPU调度和分派的基本单位。

a) 进程在执行过程中拥有独立的地址空间,而多个线程共享同一进程的地址空间,从而极大地提高了程序的运行效率

b)

进程和线程占用资源如下:

进程占有的资源线程占有的资源
地址空间
全局变量
打开的文件
子进程
信号量


寄存器
状态
程序计数器

 线程的切换开销远小于进程切换的开销,且同一进程内的线程可以共享进程的代码段、数据段、系统资源(IO设备、文件等)

 

2、进程通信方式

管道:pipe
管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;

信号(signal):
信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持unix早期信号语义函数sigal外,还支持语义符合posix.1标准的信号函数sigaction(实际上,该函数是基于bsd的,bsd为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数);
    
消息(message)队列:msgget/msgsend/msgrecv
消息队列是消息的链接表,包括posix消息队列systemv消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字 节流以及缓冲区大小受限等缺点。

共享内存:mmap
使得多个进程可以访问同一块内存空间,是最快的可用ipc形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。
    
信号量(semaphore):semget/semop
主要作为进程间以及同一进程不同线程之间的同步手段。

套接口(socket):
更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由unix系统的bsd分支开发出来的,但现在一般可以移植到其它类unix系统上:linux和system v的变种都支持套接字。

3、线程同步/异步

同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)
所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。
换句话说,就是由*调用者*主动等待这个*调用*的结果。

而异步则是相反,*调用*在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在*调用*发出后,*被调用者*通过状态、通知来通知调用者,或通过回调函数处理这个调用。

 

阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态.

阻塞调用是指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。
非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。

4、死锁

死锁 (deallocks):如果一组进程集合中的任意进程都在循环等待该组中其他进程占用的资源,那么该组进程是死锁的。

死锁的必要条件:

  1. 互斥条件:一个资源每次只能被一个进程占有。
  2. 占有和等待条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
  3. 不可抢占条件:进程已经获得的资源在未释放之前,其他进程不能抢占。
  4. 循环等待条件:死锁发生时,必然有一条由两个或两个以上的进程组成的环路。该环路中任意进程都在等待其他进程占用的资源。

破坏上述任一条件即可避免死锁产生。

 

5、虚拟存储-分页机制

Intel x86 处理器的地址转换如下:

通过:

1、分段机制: 虚拟地址 (段选择符seg:段偏移shift) ==> 线性地址

2、分页机制: 线性地址 (目录dir:页面page:页内偏移shift) ==> 物理地址

分页机制如下图:

 

 分页的好处:

1、通过LRU等页面置换算法,实现虚拟存储。

2、进程地址空间隔离。

3、减少内存碎片化,虚拟地址连续,物理地址可以不连续。

转载于:https://www.cnblogs.com/ym65536/p/4340725.html

操作系统概念背诵 一、进程管理 1. 进程管理的功能 ① 进程控制 ② 进程同步 ③ 进程通信 ④ 进程(线程)调度 2. 程序顺序执行时的特征:顺序性、封闭性、可再现性。 3. 程序并发执行时的特征:间断性、失去封闭性、不可再现性。 4. 进程由程序段、数据段和进程控制块(PCB)组成。 5. 进程的定义 ① 进程是程序的一次执行。 ② 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。 ③ 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。 ④ 进程是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。 6. 进程的基本特征:动态性、并发性、独立性、异步性、结构特征(程序+数据+PCB) 7. 进程的状态 三态:就绪状态、运行状态、阻塞状态。 五态:活动就绪、静止就绪、活动阻塞、静止阻塞、运行。 8. 进程控制块(PCB)的组成:进程标识符、处理机状态、进程调度信息、进程控制信息。 9. 临界区:进程中访问临界资源的那段代码叫做临界区。 10. 同步机制必须遵循的原则:空闲让进、忙则等待、有限等待、让权等待。 11. P, V 操作的定义 P(S):S = S − 1; 若S≥0,则当前进程继续运行; 若S<0,则将当前进程插入到S 的等待队列中去。 V(S):S = S + 1; 若S>0,则当前进程继续运行; 若S≤0,则从S 的等待队列中移出一个进程放到就绪队列中去。 12. 信号量的物理意义 S = −n 时,表示有n 个等待进入临界区的进程,当前已有进程在临界区中访问临界资源; S = 0 时,表示不允许任何进程进入临界区,当前已有进程在临界区中访问临界资源; S = n 时,表示临界区是空闲的,该类资源的可用数目为n,可以有n 个进程访问该类资源。 13. 高级通信机制有:共享存储器系统、消息传递系统、管道通信系统。 14. 线程的定义:线程是进程内的一个实体,是处理机调度的基本单位,是程序内部一个单一的顺序控 制流。 15. 引入进程的目的:是为了使多个程序并发执行,提高资源利用率和系统吞吐量。 16. 引入线程的目的:是为了减少程序并发执行时的时空开销,使操作系统具有更好的并发性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值