当前位置:文档之家› 《操作系统原理》PPT课件

《操作系统原理》PPT课件

Shared variable: int total : = 0 ;
p0,p1:
{
int count;
for (count=1; count <=50; count++)
total = total + 1 ;
} total可能的结果? 最大值?最小值? 注意total是两个进程都可以访问的共享存储单元,不同于一般 程序中的全局变量
Monolithic:内核中所有的子系统运行在相同的特 权级(privileged mode),拥有相同的地址空间,通 信采用常规C函数调用的形式。
5
四、操作系统的硬件支持
▪ 特权级(区分OS与应用程序的权限) ▪ MMU ▪ Cache ▪ 中断
6
五、系统调用
▪ 操作系统提供给应用程序的一个接口,使得应用程序能够获得 操作系统的服务
✓ 一次只能由一个进程访问的资源 临界区(critical section)
✓ 访问临界资源的代码段称为临界区(CS)
13
互斥(mutual exclusion) ✓在一个时刻最多只有一个进程在临界区
同步(synchronization) ✓协调需要访问临界资源的进程,否则会导致race condition (竞争条件) 如:两进程 p0,p1,都通过下面的代码访问一个共享的存储单 元:
进程中的线程共享进程资源,但拥有私有堆栈及线程控制 块(TCB,存储寄存器值、优先级及其他线程状态信息) 核心级线程(KLT:kernel-level thread) ✓ 应用程序通过API调用核心线程管理例程(kernel thread
facility)来管理: 需要进行模式切换
✓ 是OS调度的基本单位 ✓ 线程阻塞不会导致整个进程的阻塞 ✓ 在多处理器环境下,内核可使线程在不同的处理器上
进程是资源拥有的基本单位(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
Operating System Principles
操作系统概述 进程管理 存储管理 文件系统与I/O
1
精选课件ppt
第一部分 操作系统概述
一、操作系统的功能
▪ 实现对计算机资源的管理 (CPU, 存储器,I/O设备) ▪ 控制应用程序的执行 ▪ 提供应用程序访问计算机资源的接口(系统调用) ▪ 实现对操作系统内核及应用程序的保护
(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.
操作系统给计算机一个灵活的大脑、 一个强健的心脏和突出的个性
2
二、OS的分类
批系统 (batch system) ➢ 成批提交作业,作业完成或无法继续执行时发生切换
交互(分时)系统(interactive, Time-sharing system) ➢ 多个用户(应用程序)分享计算机资源 Windows, Linux, …
▪ 进程管理、文件管理、存储管理、系统管理等
▪系统调用是一个复杂的 过程 ▪系统调用往往通过软中 断的方式实现 ▪系统调用在为应用程序 提供操作系统服务的同 时,也实现了对计算机 资源和应用程序的保护
7
第二部分 进程管理
一、进程
Process - a program in execution text section, data section, stack, current activity
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)
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); }
运行 ✓ E.g. windows thread
9
用户级线程(ULT:user-level thread) ✓ 由应用程序自己通过线程库(thread library)来管 理:线程创建、终止、线程间通信,线程调度与 切换 ✓ OS感知不到ULT的存在 ✓ 线程阻塞会导致整个进程的阻塞 ✓ 理论上讲,在任何OS下都可以实现 ✓ 无法利用多处理器
实时系统(Real-time system) ➢ 满足应用的时间约束要求 VxWorks, QNX, …
3
三、操作系统的Leabharlann 系结构▪ 单内核结构( Monolithic, macro-kernel)与微内核结构 (micro-kernel)
孰优?
4
Monolithic vs. micro-kernel
相关主题