Linux操作系统基础知识之七:内核中的同步

Q1.        什么是临界区?什么是竞争状态?什么是同步?

A:

1)        临界区(critical regions)就是访问和操作共享数据的代码段,多个内核任务并发访问同一个资源通常是不安全的;

2)        如果两个内核任务可能处于同一个临界区,就是一种错误现象;如果确实发生了这种情况,就称它为竞争状态

3)        避免并发和防止竞争状态称为同步(synchronization)。

 

Q2.        简要介绍一下死锁及避免死锁的方法。

答:死锁包括自死锁和ABBA死锁,

1)        产生死锁有四个原因:互斥使用不可抢占请求和保持,以及循环等待

2)        避免死锁的方法有:破坏“不可剥夺”条件、破坏“请求和保持”条件、破坏“循环等待”条件。

 

Q3.        内核中造成并发执行的原因是什么?

A:“并发”分为“伪并发”和“真并发”两种,内核中造成并发执行的原因有以下几种:

1)        中断:它可能随时打断当前正在执行的代码;

2)        内核抢占:内核中的任务可能会被另一个任务抢占;

3)        睡眠及其与用户空间的同步:在内核执行的进程可能会睡眠,这就会唤醒调度程序,调度一个新的用户进程执行;

4)        对称多处理:两个或多个处理器可以同时执行代码。

 

Q4.        给出信号量的定义,并说明down()和up()的含义。

A:

1)        Linux中的信号量是一种睡眠锁,它是1968年由Dijkstra提出的,如果一个任务试图获得一个已被持有的信号量,信号量会将其推入等待队列,然后让其睡眠;当持有信号量的进程将信号量释放后,在等待队列中的一个任务将被唤醒,从而可以获得这个信号量;

2)        信号量支持两个原子操作P()V(),前者叫做测试操作,后者叫做增加操作;后来的系统把这两种操作分别叫做down()和up();

3)       down()操作通过对信号量计数减1来请求获得一个信号量;up()操作用来释放信号量,该操作也被称作“提升”(upping)信号量,因为它会增加信号量的计数值。

时间: 2024-10-14 16:08:06

Linux操作系统基础知识之七:内核中的同步的相关文章

Linux操作系统基础知识之九:设备驱动

Q1.        为什么把设备分为"块设备"和"字符设备"两大类? A: 1)        Linux将设备看成文件,具有三方面的含义:第一,每个设备都对应一个文件名,在内核中也就对应一个索引节点:第二,对文件操作的系统调用大都适用于设备文件:第三,从应用程序的角度看,设备文件的逻辑空间是一个线性空间:对于同一个具体的设备而言,文件操作和设备驱动是同一个事物的不同层次,概念上可以将一个系统划分为应用.文件系统和设备驱动三个层次: 2)        Linux

Linux操作系统基础知识之三:进程

Q1.        程序与进程的概念分别是什么?为什么要引入"进程"的概念? A: 1)        程序是一个普通文件,是机器代码指令和数据的集合,这些指令和数据存储在磁盘上的一个可执行映像中,可执行映像(executable image)就是一个可执行文件的内容: 2)        进程代表程序的执行过程,它是一个动态的实体,随着程序中指令的执行而不断地变化,在某个时刻进程的内容被称为进程映像(process image): 3)        程序的执行过程可以说是一个执行

Linux操作系统基础知识之八:文件系统

Q1.        Linux目录树结构是怎样的?它与Windows的目录树结构有什么区别?为什么Linux的文件系统采用固定的目录形式? A:文件是一个抽象的概念,它是存放一切数据或信息的仓库: 1)        Linux的目录树结构为:根目录(/)在上,其它的平行在下: 2)        Windows操作系统也是采用树型结构,但其树型结构的根是磁盘分区的盘符,有几个分区就有几个树型结构,它们之间的关系式并列的:而在Linux中,无论操作系统管理几个磁盘分区,这样的目录树只有一个:

Linux操作系统基础知识之一:Linux操作系统概述

 Q1.        什么是GNU?Linux与GNU有什么关系? A: 1)        GNU是GNU is Not Unix的递归缩写,是自由软件基金会(Free Software Foundation,FSF)的一个项目,该项目已经开发了许多高质量的编程工具,包括emacs编辑器.著名的GNU C和C++编译器(gcc和g++): 2)        Linux的开发使用了许多GNU工具,Linux系统上用于实现POSIX.2标准的工具几乎都是由GNU项目开发的:Linux内核.GN

Linux操作系统基础知识之二:内存寻址

Q1.        什么是物理地址?什么是虚地址?什么是线性地址? A: 1)        将主板上的物理内存条所提供的内存空间定义为物理内存空间,其中每个内存单元的实际地址就是物理地址: 2)        将应用程序员看到的内存空间定义为虚拟地址空间(或地址空间),其中的地址就叫做虚拟地址(或虚地址),一般用"段:偏移量"的形式来描述,如A815:CF2D: 3)        线性地址空间是指一段连续的.不分段的.范围为0~4GB的地址空间,一个线性地址就是线性地址空间的一个

Linux操作系统基础知识之六:系统调用

Q1.        什么是系统调用?为什么要引入系统调用? A: 1)        操作系统为用户态的进程与硬件设备(如CPU.磁盘和打印机等)之间的交互提供了一组接口,这些接口使得程序更具有可移植性,因为不同的操作系统只要所提供的一组接口相同,那么在这些操作系统之上就可以正确地编译和执行相同的程序,这组接口就是所谓的"系统调用": 2)        引入系统调用的原因有: A.      这使得编程更加容易: B.       这极大地提高了系统的安全性: C.      最重

Linux操作系统基础(四)保护模式内存管理(2)【转】

转自:http://blog.csdn.net/rosetta/article/details/8570681 Linux操作系统基础(四)保护模式内存管理(2) 转载请注明出处:http://blog.csdn.net/rosetta           本节主要讲:保护模式内存管理相关的物理地址空间,逻辑和线性地址空间,段选择符,段寄存器,段描述符. 物理地址空间          保护模式下,IA-32架构提供了一个4GBytes(2^32bytes)正常大小的物理寻址空间.处理器可以使用

linux防火墙基础知识以及如何管理设置iptables规则

一.linux防火墙基础 防火墙分为硬件防火墙和软件防火墙. 1.概述 linux 防火墙体系主要工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙. 包过滤机制:netfilter 管理防火墙规则命令工具:iptables netfilter 指linux内核中实现包过滤防火墙的内部结构,不依程序或文件的形式存在,属于"内核态"的防火墙功能体系 iptables 指管理linux防火墙的命令工具,属于"用户态"的防火墙管理体系 2.ipta

Linux系统管理基础知识

一.用户账号管理级 不管是Linux还是Windows,对于用户账号的管理都是重中之重,因为它是进入系统的第一道门,作为一个运维人员,必须掌握对用户账号的基本管理,什么样的用户账号有什么样的权限,不该有什么样的权限,这个要很明确的.当某个用户不应该再访问系统的时候,必须禁用该用户的账号.没有用的用户账号,他就没有存在的必要,否则可能会是你某天早上醒来会的第一个噩梦.当然,再删除账号以前,要将该用户账号下的所有文件进行备份并转移到其他位置. 学会在字符命令行下的用户账号管理,主要在Linux环境下