Linux培训
美国上市Linux培训机构

400-111-8989

热门课程

为你介绍一些Linux操作系统的基础知识(五)

  • 发布:linux培训
  • 来源:Linux职场
  • 时间:2018-05-28 16:04

今天小编继续为大家带来Linux操作系统的基础知识系列文章,今天为大家准备的是关于Linux操作系统的一些基础知识(五),之前的文章你是否看过了呢,喜欢Linux的小伙伴们快来看一看吧,希望对你有帮助~

系统调用

Q1.什么是系统调用?为什么要引入系统调用?

A:

(1)操作系统为用户态的进程与硬件设备(如CPU、磁盘和打印机等)之间的交互提供了一组接口,这些接口使得程序更具有可移植性,因为不同的操作系统只要所提供的一组接口相同,那么在这些操作系统之上就可以正确地编译和执行相同的程序,这组接口就是所谓的“系统调用”;

(2)引入系统调用的原因有:

1)这使得编程更加容易;

2)这极大地提高了系统的安全性;

3)最重要的一点,这些接口使得操作系统更具有可移植性。

内核中的同步

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

A:

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

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

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

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

A:

死锁包括自死锁和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)信号量,因为它会增加信号量的计数值。

为你介绍一些Linux操作系统的基础知识

文件系统

Q1.Linux目录树结构是怎样的?它与Windows的目录树结构有什么区别?为什么Linux的文件系统采用固定的目录形式?

A:

文件是一个抽象的概念,它是存放一切数据或信息的仓库;

1)Linux的目录树结构为:根目录(/)在上,其它的平行在下;

2)Windows操作系统也是采用树型结构,但其树型结构的根是磁盘分区的盘符,有几个分区就有几个树型结构,它们之间的关系式并列的;而在Linux中,无论操作系统管理几个磁盘分区,这样的目录树只有一个;

3)这样做的原因是:Linux是一个多用户系统,制定这样一个固定的目录规划有助于对系统文件和不同的用户文件进行统一管理;

4)Linux中的文件类型包括:常规文件、目录文件、设备文件、管道文件和链接文件。

Q2.什么是虚拟文件系统?什么是虚拟文件系统界面?

A:

1)将各种不同文件系统的操作和管理纳入到一个统一的框架中,使得用户程序可以通过同一个文件系统界面,也就是同一组系统调用,对各种不同的文件系统以及文件进行操作;用户程序可以不关心不同文件系统的实现细节,而使用系统提供的统一、抽象、虚拟的文件系统界面;这种统一的框架就是所谓的虚拟文件系统转换,一般简称虚拟文件系统(VFS);

2)VFS的对象类型包括:超级块(superblock)对象、索引节点(inode)对象、目录项(dentry)对象和文件(file)对象;

3)虚拟文件系统界面是虚拟文件系统所提供的抽象界面,它主要由一组标准的、抽象的操作构成,这些函数(操作)以系统调用的形式供用户调用。

设备驱动

Q1.为什么把设备分为“块设备”和“字符设备”两大类?

A:

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

2)Linux将设备分为两大类,一类是像磁盘那样的以块或扇区为单位、成块进行输入/输出的设备,称为块设备;另一类是像键盘那样以字符(字节)为单位,逐个字符进行输入/输出的设备,称为字符设备;文件系统通常都建立在块设备上。

Q2.什么是设备驱动程序?

A:

Linux中处理和管理硬件控制器的软件就是设备驱动程序。

Q3.I/O端口一般包括哪些寄存器?各自功能是什么?

A:

1)I/O端口包括控制寄存器、状态寄存器和数据寄存器三大类;

2)根据访问外设寄存器的不同方式,将CPU分为两大类:一类是“内存映射”(memory-mapped)方式,另一类是“I/O映射”(I/O- mapped)方式。

以上就是小编今天为大家分享的关于Linux操作系统的一些小知识(五),没有看过之前文章的小伙伴记得去官网查看哦。希望这些问答能够对你有所帮助。想了解更多Linux信息,对Linux感兴趣的小伙伴记得来达内Linux官网,这里有更多的Linux资讯和专业的Linux培训班

【免责声明:本文图片及文字信息均由小编转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除。】

免费预约企业总监级讲师试听课

怕钱不够?就业挣钱后再付学费!     怕学不会?0基础入学,达内定制课程!     担心就业?近12万家雇主企业,推荐名企就业!

上一篇:为你介绍一些Linux操作系统的基础知识(四)
下一篇:Linux运维工程师应该知道的几个致命的 Linux 命令

这五个最佳的Linux桌面环境你更喜欢哪一个?

Linux教程-教Linux运维人员如何正确地使用awk工具

什么?你居然还不知道“云计算”?

Linux运维入门新手都会犯哪些错误?

选择城市和中心
贵州省

广西省

海南省