1 / 48
文档名称:

Unix程序设计基础.ppt

格式:ppt   大小:82KB   页数:48页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Unix程序设计基础.ppt

上传人:sanshengyuanting 2018/7/19 文件大小:82 KB

下载得到文件列表

Unix程序设计基础.ppt

文档介绍

文档介绍:Unix程序设计基础第二讲
上一讲回顾
80386 CPU介绍
实模式与保护模式
特权级别
分段与分页
系统调用原理
软中断引起特权级别的切换
int 80h
被封装成一组C函数
上一讲回顾
Unix下对文件与设备的操作
文件描述字
设备文件
文件操作系统调用
打开,创建,关闭文件
文件访问权限
读写文件
文件定位
操作系统的重要概念:进程
什么是进程?
Unix下的进程
Unix下的多进程编程
进程控制
信号处理
进程间通信
特殊的进程:线程
什么是进程?
几个定义:
APUE: An executing instance of a program is called a process.
不准确:程序一次运行可以创建多个进程
实质上根本不对:在Unix下程序的运行并不产生一个新进程
我的定义:进程是具有独立地址空间的运行单位
“独立地址空间”很重要
Unix使用flat address,以32位系统为例,地址范围从0x0-0xffffffff。任何地址都是虚拟地址,要通过页面映射才能得到物理地址,这个过程对进程来说是透明的,进程看到的都是虚拟地址。
“独立地址空间”是指各个进程都有自己的虚拟地址空间(在Linux下为0x0-0xbfffffff),而且任何进程都只能访问到自已经的虚拟地址空间。
进程的并发性
宏观上,所有进程都是并发运行的。
微观上,除非是多处理器,否则不可能有两个进程在同时运行。具体方法是时间片轮转:一个进程运行一个时间片,就把CPU让出来让另一个进程运行。因为时间片很小,所以用户看起来所有进程都在运行。
任何两个不相关的进程其推进速度可能是任意的。
并发带来的好处与挑战
很明显好处:可以让多个用户分享CPU。对单用户而言,也可同时运行多个程序,如一边上网一边QQ。
更深层次的好处:充分利用CPU资源。
当一个进程在等待数据时(从网络,外部设备等),其它进程可占用CPU。
并发带来的好处与挑战
挑战:并不是所有的事情都可以同时做。
两个进程同时写一个文件,对于普通文件,文件某一个位置上的内容是最后一次写入的结果。好像还不太糟。
但如果这个文件是一台打印机那将会怎么样?可以想像打印出来的东西将不是任何一个进程想得到的。
数据的不一致性。
数据的不一致性
例:多个进程通过共享内存通信(一种进程间通信方式,与地址空间独立性无关),共享一块物理地址。每个进程都通过int *p映射到这块物理地址。进程每次获取一个网页,调用*p=*p+1。最后*p的值就是多个进程获取到的网页总合。