UNIX系统编程复习笔记 一
来源:互联网 发布:网络推广课程 编辑:程序博客网 时间:2024/04/30 18:14
2016.12.5 DAGE
- a.操作系统
是管理计算机硬件与软件资源的计算机程序。
- 操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序的运行,改善人机界面,为其他的应用软件提供支持,是计算机的系统资源最大限度的发挥作用等。操作系统管理者计算机硬件资源,同时按照应用程序的资源需求,进行分配资源。
- 资源管理,程序控制,人机交互。
- 处理器管理、存储器管理、文件关系、设备管理。*
b.进程
1.定义:
进程是计算机已运行程序的实体。
程序只是指令的集合,并没有占用CPU资源,但是进程是正在运行的程序。程序与进程是多对多的关系(可以多个用户运行同一个程序)2.进程的状态:
执行、就绪、阻塞、创建、结束。 前三个是基本状态。可以相互转换。
执行-就绪:时间片轮转,当前系统分配给的时间片结束,CPU去执行优先级更高地进程。进程与程序:
1>.进程是程序及数据在计算机上一次运行活动,是一个动态概念。进程的运行实体是程序,进程是由程序、数据和进程控制块(PCB)三部分组成
2>.进程是程序的执行过程,它是动态的创建与消亡的,具有一定的生命周期。
3>.一个进程可以执行一个或几个程序,一个程序也可以构成多个进程,进程可以创建进程,程序不可能形成新的程序。
4>.进程与程序的组成不同。进程的组成由上面那三个块组成。创建新进程时会创建新的地址空间,子进程是父进程的复制品,在fork后子进程获得父进程的数据空间、堆和栈的复制品。而创建的多个线程之间共同使用父进程的地址空间。
PS:这儿复制了父进程的堆和栈的复制品,也会复制父进程的输出缓冲区。
c.线程
- 1.定义:
- 是程序执行流的最小单位。一个标准的线程由线程ID,当前指令指针PC,寄存器集合和堆栈组成。
- 线程是进程的一个实体,是被系统分配和调度的基本单位,线程自己不拥有系统资源。只拥有一点在运行时必不可少的资源,但它可和同属于同一进程的其他线程共享进程所拥有的的资源。
- 2.多线程
- 线程之间共享的进程环境:进程代码段,进程的共有数据(全局变量等),线程打开的文件描述符、信号处理器等
而每个线程自己的个性为:
线程ID
寄存器组的值
线程的堆栈(而同属于同一个进程的所有线程共享一个堆)
错误返回码
线程的优先级
进程和线程之间的区别:
- 1.调度:
进程是拥有资源的基本单位,线程是独立调度的基本单位。
进程只作为除CPU以外系统资源的分配单元,线程则作为处理器的分配单元。 - 2.拥有资源:
拥有资源在定义第二行。 - 3.并发性:
进程可以并发进行并且同一进程的多个线程也可以并发进行。 - 4.系统开销:
创建和撤销进程时,系统都要为之分配或回收资源,因此操作系统的开销远大于创建或撤销线程的开销。
并且,进程的切换涉及当前执行CPU环境的保存以及新调度CPU环境的设置,而线程切换只需要保存和设置少量寄存器内容,开销小。
同一进程的多线程共享进程的地址空间,所以多个线程之间的同步与通信比较容易实现。 - 5.地址空间与其他资源(如打开的文件):
进程的地址空间相互独立,同一进程的各线程之间共享进程的资源,某进程内的线程对其他进程不可见。 - 6.通信:
进程之间的通信需要接祖操作系统,而线程之间可以直接读写数据段进行通信,比如全局变量。
0 0
- UNIX系统编程复习笔记 一
- UNIX系统编程笔记
- UNIX系统编程1《笔记》
- UNIX系统编程2《笔记》
- UNIX网络编程笔记一
- 《Unix编程艺术》笔记(一)
- 原子日志生成器-----UNIX系统编程笔记
- 《UNIX环境高级编程》笔记--系统标识
- 《UNIX环境高级编程》笔记--系统标识
- Linux-Unix系统编程手册学习笔记
- UNIX Shell编程 学习笔记(一)
- 《UNIX网络编程 》学习笔记 (一)
- 《Unix编程艺术》重读笔记(一)
- Unix 网络编程卷一- 学习笔记
- unix网络编程(笔记一)
- unix网络编程笔记(一)
- unix网络编程笔记(一)
- Unix网络编程一、二章笔记
- KeyListener的一些问题
- Handler的正确使用,使用静态内部类+虚引用,解决Context泄漏
- 线程分离
- 每日总结 (2016-12-05)
- C++中const和引用修饰变量和函数的总结
- UNIX系统编程复习笔记 一
- 商人小鑫
- 大学感悟【八】
- xutils
- eclipse Mac安装了tomcat7.0,启动后在window-> preferences选项中找不到tomcat项
- TODO:字节的那点事Go篇
- Android点击展示/收起更多详情+动画效果 Value
- 《编程之美》-- 让CPU占用率听你指挥
- IO多路转接