一:什么是临界区
临界区指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性。当有线程进入临界区段时,其他线程或是进程必须等待(例如:bounded waiting 等待法),有一些同步的机制必须在临界区段的进入点与离开点实现,以确保这些共用资源是被互斥获得使用,例如:semaphore。只能被单一线程访问的设备,例如:打印机。
二:临界资源和临界区什么意思?
1、什么是临界区?
答:每个进程中访问临界资源的那段程序称为临界区(临界资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区,进入后不允许其他进程进入。
2、进程进入临界区的调度原则是:
①如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。②任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。③进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。④如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。
三:什么是临界区和临界资源?对临界区管理的基本原则是什么?
临界区:每个进程中访问临界资源的那段程序叫做临界区。进程对临界区的访问必须互斥,每次只允许一个进程进去临界区,其他进程等待。
临界资源:指每次只允许一个进程访问的资源,分硬件临界资源、软件临界资源。
临界区管理的基本原则是: ①如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。②任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。③进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。④如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。
四:对临界区管理的基本原则是什么?
①有则等待,无则进入。②临界区内有且只有一个进程。③进程进入临界区后必须在有限时间内退出。④如果进程不能进入自己的临界区,则应让出CPU,避免出现“忙等”。
五:操作系统中的临界区是什么
t;
#include
#include
#include
#define false 0
#define true 1
int flag[2];
int turn;
void P0()
{
while(true)
{
flag[0]=true;
turn = 1;
while(flag[1]&&turn==1)
;
printf ("P0 is in critical section.\n");
printf ("P0 is going to leave critical section.\n");
flag[0]=false;
printf ("P0 is out of critical section.\n");
}
}
void P1()
{
while(true)
{
flag[1]=true;
turn = 0;
while(flag[0]&&turn==0)
;
printf ("P1 is in critical section.\n");
printf ("P1 is going to leave critical section.\n");
flag[1]=false;
printf ("P1 is out of critical section.\n");
}
}
int main()
{
pthread_t pid0;
pthread_t pid1;
flag[0]=false;
flag[1]=false;
pthread_create(&pid0, NULL, (void*)P0, NULL);
pthread_create(&pid1, NULL, (void*)P1, NULL);
pthread_join(pid0, NULL);
pthread_join(pid1, NULL);
exit(0);
}
Linux系统下实现
六:临界区是指并发进程中访问共享变量的什么段?
临界区是指并发进程中访问共享变量的程序段
七:简述什么是线程同步机制和临界区管理
临界区的基本概念
临界区:在同一个进程内的多个线程之间通过原子方式实现共享资源的串行化读写。
临界区相关函数
CRITICAL_SECTION cs;
::InitializeCriticalSection(&cs);
::EnterCriticalSection(&cs);
::LeaveCriticalSection(&cs);
::DeleteCriticalSection(&cs);
临界区编程实例
实例一:临界区基本使用方法
输出结果(注掉13,17,没有进行临界区同步):
输出结果(临界区同步):
实例二:使用临界区对象创建自动锁
CriticalSection:封装 Windows CRICITAL_SECTION 用户对象
AutoLock:封装CriticalSection的操作,让它进入一个Scope的时候自动加锁,离开一个Scope的时候自动解锁
八:临界区问题的解决方案必须满足的三个要求是什么
进程进入临界区要满足一定的条件,以保证临界资源的安全使用,系统的正常运行,即对临界区的管理就遵循以下三个原则:(1)当有若干进程要求进入它们的临界区时,应在有限时间内使一进程进入临界区。