进程
进程的定义:
1.进程是程序的一次执行
2.进程是一个程序及其数据在处理机上顺序执行时所发生的活动
3.进程是具有一定功能的程序在一个数据集合上运行的过程,它是系统进行资源分配调度的一个独立单位
进程的特征:动态性、并发性、独立性、异步性
进程的三种基本状态:就绪状态、执行状态、阻塞状态
进程通信
进程通信的定义:
进程通信是指进程之间的信息交换
进程通信的类型
课本上的,总感觉有点笼统……
1.共享存储系统(Shared-Memory system)
~~2.管道(pipe)通信系统~~
3.消息传递系统(Message passing system)
~~4.客户机-服务器系统(Client-Server system)~~
管道、系统IPC(包括消息队列、信号量、共享存储)、SOCKET
管道主要氛围:普通关掉PIPE、流管道(s_pipe)、命名管道(name_pipe)
管道是一种半双工的通信方式,数据值单向流动,并且只能在具有亲缘关系的进程间流动,进程的亲缘关系通常是父子进程
命名管道也是半双工的通信方式,它允许无亲缘关系的进程间进行通信
信号量是一个计数器,用来控制多个进程对资源的访问,他通常作为一种锁机制
消息队列是消息的链表,存放在内核中并由消息队列标识符标识
信号是一种比较复杂的通信方式,用于统治接受进程某个事件已经发生
共享内存就是映射一段能被其他进程访问的内存,这段共享内存由一个进程创建,但是多个进程可以访问
线程:
线程是进程的实体,是CPU调度和分派的基本单位,他是比进程更小能独立运行的基本单位。
一个线程可以有多个线程,多个线程也可以并发执行多个线程也可以并发执行
为什么要在操作系统中引入线程?
答:由于进程是资源的拥有者,所以在创建、撤销、切换操作中需要较大的时空开销,限制了并发程度的进一步提高。为减少进程切换的开销,把进程作为资源分配单位和调度单位这两个属性分开处理,即进程还是作为资源分配的基本单位,但是不作为调度的基本单位(很少调度或切换),把调度执行与切换的责任交给“线程”。这样做的好处不但可以提高系统的并发度,还能适应新的对称多处理机(SMP)环境的运行,充分发挥其性能。
待续……
本文参考文献和文章:
[1]常见面试题整理–操作系统篇(每位开发者必备)
[2]操作系统习题
[3]http://blog.csdn.net/wangshihui512/article/details/9897607