- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10
11
#include <pthread.h> #include <stdio.h> int sum; void *runner(void *param); main(int argc, char *argv[]) {
pthread_t tid; pthread_attr_t attr; pthread_attr_init(&attr); //初始化线程属性为缺省属性 pthread_create(&tid,&attr,runner,argv[1]); //创建线程 pthread_join(tid,NULL); //等待线程tid结束 printf(“sum=%d\n”,sum); }
Shared variable: int total : = 0 ;
p0,p1:
{
int count;
for (count=1; count <=50; count++)
total = total + 1 ;
} total可能的结果? 最大值?最小值? 注意total是两个进程都可以访问的共享存储单元,不同于一般 程序中的全局变量
实时系统(Real-time system) ➢ 满足应用的时间约束要求 VxWorks, QNX, …
3
三、操作系统的体系结构
▪ 单内核结构( Monolithic, macro-kernel)与微内核结构 (micro-kernel)
孰优?
4
Monolithic vs. micro-kernel
运行 ✓ E.g. windows thread
9
用户级线程(ULT:user-level thread) ✓ 由应用程序自己通过线程库(thread library)来管 理:线程创建、终止、线程间通信,线程调度与 切换 ✓ OS感知不到ULT的存在 ✓ 线程阻塞会导致整个进程的阻塞 ✓ 理论上讲,在任何OS下都可以实现 ✓ 无法利用多处理器
Operating System Principles
操作系统概述 进程管理 存储管理 文件系统与I/O
1
精选课件ppt
第一部分 操作系统概述
一、操作系统的功能
▪ 实现对计算机资源的管理 (CPU, 存储器,I/O设备) ▪ 控制应用程序的执行 ▪ 提供应用程序访问计算机资源的接口(系统调用) ▪ 实现对操作系统内核及应用程序的保护
进程中的线程共享进程资源,但拥有私有堆栈及线程控制 块(TCB,存储寄存器值、优先级及其他线程状态信息) 核心级线程(KLT:kernel-level thread) ✓ 应用程序通过API调用核心线程管理例程(kernel thread
facility)来管理: 需要进行模式切换
✓ 是OS调度的基本单位 ✓ 线程阻塞不会导致整个进程的阻塞 ✓ 在多处理器环境下,内核可使线程在不同的处理器上
▪ 进程管理、文件管理、存储管理、系统管理等
▪系统调用是一个复杂的 过程 ▪系统调用往往通过软中 断的方式实现 ▪系统调用在为应用程序 提供操作系统服务的同 时,也实现了对计算机 资源和应用程序的保护
7
第二部分 进程管理
一、进程
Process - a program in execution text section, data section, stack, current activity
操作系统给计算机一个灵活的大脑、 一个强健的心脏和突出的个性
2
二、OS的分类
批系统 (batch system) ➢ 成批提交作业,作业完成或无法继续执行时发生切换
交互(分时)系统(interactive, Time-sharing system) ➢ 多个用户(应用程序)分享计算机资源 Windows, Linux, …
(quoting Linus Torvalds):
... message passing as the fundamental operation of the OS is just an exercise in computer science masturbation. It may feel good, but you don't actually get anything DONE.
进程是资源拥有的基本单位(unit of resource ownership)
CPU、存储空间,及其他资源(I/O设备、文件等) ▪ 进程控制块(PCB)及其管理 ▪ 进程的状态:running,ready,blocked,stopped,zombie
8
二、线程(thread)
Thread – an execution path in a process Thread – the unit of dispatching
void *runner(void *param)
{
int upper=atoi(param);
int i;
sum = 0;
if (upper >0)
for ( i = 1;ห้องสมุดไป่ตู้i <=upper; i++)
sum +=i;
pthread_exit(0);
}
12
三、并发控制:互斥与同步 并发(Concurrent) 与并行(Parallel) 临界资源(critical resource)
✓ 一次只能由一个进程访问的资源 临界区(critical section)
✓ 访问临界资源的代码段称为临界区(CS)
13
互斥(mutual exclusion) ✓在一个时刻最多只有一个进程在临界区
同步(synchronization) ✓协调需要访问临界资源的进程,否则会导致race condition (竞争条件) 如:两进程 p0,p1,都通过下面的代码访问一个共享的存储单 元:
Monolithic:内核中所有的子系统运行在相同的特 权级(privileged mode),拥有相同的地址空间,通 信采用常规C函数调用的形式。
5
四、操作系统的硬件支持
▪ 特权级(区分OS与应用程序的权限) ▪ MMU ▪ Cache ▪ 中断
6
五、系统调用
▪ 操作系统提供给应用程序的一个接口,使得应用程序能够获得 操作系统的服务