文件描述符重定向的操作

文件描述符重定向的操作 1.linux用文件描述符来标识每个文件对象,文件描述符是一个非负整数,可以唯一地标识会话中打开的文件,每个过程一次最多可以有9个文件描述符; 2.0=>STDIN=>标准输入;1=>STDOUT=&am...

2018-09-08 10:02:11

阅读数 41

评论数 0

站在系统角度,常见的文件操作接口的使用

站在系统角度,常见的文件操作接口的使用 open系统调用执行的操作:新建一个i节点表元素,让其对应打开的物理文件(如果对应于该物理文件的i节点元素已经建立,就不做任何操作);新建一个文件表的元素,根据open的第2个参数设置file status flags字段,将current file of...

2018-09-08 10:01:20

阅读数 55

评论数 0

文件描述符与C FILE*的关系,理解系统调用与库函数(面试题)

文件描述符与C FILE*的关系,理解系统调用与库函数 每个进程都有⼀个指针*files, 指向⼀张表files_struct,该表最重要的部分就是包涵一个指针数组,每个元素都是一个指向打开文件的指针,文件描述符就是该数组的下标。 系统调用与库函数 可以认为,f#系列的函数(库函数),都是对...

2018-09-08 09:59:20

阅读数 64

评论数 0

进程打开文件的本质以及文件描述符的本质

进程打开文件的本质 当我们打开文件时,操作系统在内存中要创建相应的数据结构来描述目标文件。于是就有了file结构体。表⽰⼀个已经打开的文件对象。而进程执行open系统调⽤,所以必须让进程和文件关联起来。每个进程都有⼀个指针*files, 指向⼀张表files_struct,该表最重要的部分就是包...

2018-09-08 09:48:43

阅读数 260

评论数 0

理解文件系统中inode的概念

理解文件系统中inode的概念 概念:inode就是索引节点,它用来存放档案及目录的基本信息,包含时间、档名、使用者及群组等 inode 是 UNIX 操作系统中的一种数据结构,其本质是结构体 在 Linux 中,索引节点结构存在于系统内存及磁盘,其可区分成 VFS inode 与实际文件系统...

2018-09-08 09:45:19

阅读数 142

评论数 0

守护进程

守护进程 概念理解 守护进程是一个在后台运行并且不受任何终端控制的进程。Unix操作系统有很多典型的守护进程(其数目根据需要或20—50不等),它们在后台运行,执行不同的管理任务。 守护进程也称精灵进程(Daemon),是运⾏在后台的⼀种特殊进程。它独立于控制终端并且周期性地执行 某种任务或...

2018-09-08 09:41:43

阅读数 25

评论数 0

互斥量,条件变量,信号量,读写锁,自旋锁

互斥量,条件变量,信号量,读写锁,自旋锁 互斥锁–保护了一个临界区,在这个临界区中,一次最多只能进入一个线程。如果有多个进程在同一个临界区内活动,就有可能产生竞态条件(race condition)导致错误,其中包含递归锁和非递归锁,(递归锁:同一个线程可以多次获得该锁,别的线程必须等该线程释...

2018-09-08 09:41:04

阅读数 28

评论数 0

读者写者模型和生产者消费者模型区别

读者写者模型和生产者消费者模型区别(面试题) 从两个模型的原理中可以看出,两个模型最大的区别在于在生产者消费者模型中,生产者与生产者是互斥关系,消费者和消费者是互斥关系,生产者和消费者之间是互斥与同步关系;而在读者写者模型中,读者和读者没有关系,写者和写者是互斥关系,读者和写者是互斥与同步关系。...

2018-09-08 09:40:27

阅读数 80

评论数 0

读者写者模型的理解

读者写者模型的理解 什么是读者写者模型 读者和写者模型是操作系统中的一种同步与互斥机制,它与消费者和生产者模型类似,但也有不同的地方,最明显的一个特点是在读者写者模型中,多个多者之间可以共享“仓库”,读者与读者之间采用了并行机制;而在消费者和生产者模型中,消费者只能有一个独占仓库,消费者与...

2018-09-08 09:38:41

阅读数 46

评论数 0

生产者消费者模型的理解

生产者消费者模型的理解 生产者消费者模型也叫缓存绑定问题,是一个经典的、多进程同步问题。 单生产者和单消费者 有两个进程:一组生产者进程和一组消费者进程共享一个初始为空、固定大小为的缓冲区。 生产者:生产者的工作是制造一段数据,只有缓冲区没满时,生产者才能把消息放入到缓冲区,否则必须等...

2018-09-08 09:37:56

阅读数 56

评论数 0

理解静态库与动态库(浅谈静态动态库的区别)

理解静态库与动态库 静态库 概念 静态库是指在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中的这种库 特点 可执行文件中包含了库代码的一份完整拷贝 静态库的代码是在编译过程中被载入程序中 缺...

2018-09-01 11:14:24

阅读数 248

评论数 0

避免死锁

死锁概念 基本概念->翻我牌子来看 如何避免死锁 三种用于避免死锁的技术: 加锁顺序(线程按照一定的顺序加锁) 再多线程中,如果一个线程需要锁,那么他就必须要按照一定顺序获得锁 thread a lock 1 lock 2 thread b 等...

2018-09-01 10:18:36

阅读数 44

评论数 0

eclipse的安装(Windows)

eclipse的安装(Windows) 好几个舍友让我帮忙装一下eclipse,索性就写篇博客,供一些对于Java感兴趣的同学装环境提供点帮助(注明:盗用了前辈的几张图(忘了记下链接),如有冒犯,留言即删)。 下载X64位的JDK和eclipse 下载JDK安装包,到官网http://...

2018-08-30 12:09:57

阅读数 423

评论数 0

银行家算法(避免死锁最具代表性的算法)

概念 点击查看->基本概念 如何避免死锁 银行家算法,数据结构,算法思想 银行家算法中的数据结构: ① 可利用资源向量 Available ② 最大需求矩阵Max ③ 分配矩阵 Allocation ④ 需求矩阵 Need 三个矩阵间存在下述关系:...

2018-08-30 11:48:35

阅读数 278

评论数 0

死锁面试题(什么是死锁,产生死锁的原因及必要条件)

什么是死锁? 所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。 产生死锁的原因? 可归结为如下两点: a. 竞争资源 系统中的资源可以分为两类: 1. 可剥夺资源,是指某进程在获得这类资...

2018-08-30 11:36:30

阅读数 4721

评论数 0

线程等待(为什么要线程等待,如何等待)

线程等待 为什么需要线程等待(WHY)? 已经退出的线程,其空间没有被释放,仍然在进程的地址空间内。 创建新的线程不会复⽤刚才退出线程的地址空间 如何等待(HOW)? 功能:等待线程结束 原型 #include <pthread.h> i...

2018-08-30 09:03:44

阅读数 746

评论数 0

临界区,临界资源,原子性(面试题)

什么叫做临界区,临界资源,原子性 临界资源:临界资源是一次仅允许一个进程使用的共享资源。各进程采取互斥的方式,实现共享的资源称作临界资源。属于临界资源的硬件有,打印机,磁带机等;软件有消息队列,变量,数组,缓冲区等。诸进程间采取互斥方式,实现对这种资源的共享。 临界区:每个进程中访问临界资源的...

2018-08-29 11:46:26

阅读数 400

评论数 0

线程分离

线程分离 什么是线程分离(WHAT) 简单来讲,线程分离就是当线程被设置为分离状态后,线程结束时,它的资源会被系统自动的回收,而不再需要在其它线程中对其进行 pthread_join() 操作。 为什么线程分离(WHY) 在我们使用默认属性创建一个线程的时候,线程是 joinable 的。...

2018-08-29 11:44:50

阅读数 136

评论数 0

线程控制

线程控制(Linux下,pthread库如何控制线程) 简单来说是通过pthread簇函数来控制,常见的必不可少的就是创建和终止,具体如下: 创建线程(pthread_create) #include <pthread.h> ...

2018-08-29 10:36:47

阅读数 32

评论数 0

浅谈线程基本概念

浅谈线程基本概念 站在操作系统管理角度,理解什么是线程 线程是不拥有独立资源空间的程序执行流的最小单位 站在进程地址空间角度,理解什么是线程 线程是进程中的实体,是进程内部的控制序列,和该进程内的其他线程共享地址空间和资源 站在执行流角度,理解什么是线程 线程是程序中一个单一的...

2018-08-28 20:50:58

阅读数 60

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭