UNIX基础知识
一.线程
线程是进程某程序段的一次运行。
1.线程共享资源,利用共享的资源,线程很容易能够互相通信
(1)进程代码段:每个线程有各自的寄存器组,在运行时期拷贝给cpu寄存器,来确定运行的是哪段代码段。
(2)公共数据:堆(指的全局堆,线程自身创建的堆独享),全局变量,静态变量,常量,
(3)打开文件描述符
(4)信号处理器,信号处理器是p_thread库提供的对信号处理的系统函数。
(5)进程id和进程组id
2.线程独享资源
(1)栈,自己申请的堆,
(2)信号屏蔽码:每个线程对不同信号的处理方式不同
(3)线程id
(4)错误返回码
(5)线程优先级:不同的优先级方便线程调度
(6)寄存器:每个线程有不同的寄存器以确定线程运行的信息
3.线程间通信
(1)锁机制:互斥锁,条件变量,读写锁
互斥锁以互斥方式防止数据结构被并发修改
条件变量以原子方式阻塞线程,直到某个特定条件为真为止,对条件的测试是在互斥锁的保护下进行
读写锁的读操作是可以同步的,写的方式是互斥的
(2)信号量机制
(3)信号机制
3.线程调度:这里
二.进程
进程的概念:进程是程序的一次运行
1.进程间通信方式:
(1)无名管道:半双工的通信方式,在具有亲缘关系的进程间使用。
(2)又名管道:半双工的通信方式,可以在非亲缘关系的进程间使用。
(3)信号量,是一种锁机制,对共享资源进行互斥访问时用到。
(4)消息队列:由消息的链表,存放在内核中的消息队列标识符表示,解决了管道只能传递字节流,信号量传输量小的问题
(5)共享内存,线程能创建和其他线程共享的一段内存
(6)套接字,优点是可用于不同机器间的通信
(7)信号:signal,用于通知某个事件已经发生
2.fork与vfork
fork和vfork都是用来创建子进程的函数,对资源的拷贝上不同
fork:复制资源是全部拷贝,以前的系统会讲资源在fork之后就全部拷贝,但新的拷贝思想是写时拷贝,即开始的时候父子进程的代码段,数据等资源只是虚拟地址不一样,实际上指的是同一个物理地址。当父子进程改变了相应段的内容时,父进程会将该段的复制给子进程。有一个细节问题就是父进程的优先级会低于子进程,这是因为子进程大部分都用于exec。如果父进程在子进程exec之前修改内容会导致不必要的写时复制。
vfork:父子进程共享数据段,但父进程会阻塞,直到子进程调用了exec或exit,一般来讲vfork创建的子进程用于启动一个新的进程。
三.文件
1.文件权限
文件权限一共有七条,分四组
第一组:文件类型 d,目录文件director
第二组:u,user,所有者权限,分三种分别是rwx,读,写,执行
第三组:r,other,其他人的权限,分三种同上
第四组:g,ground,用户组权限,分三种同上
改变文件方式:
chmod 751 a,给a文件的权限为 rwxr-x--x
chmod u=r,g = x,将user权限改为只读,ground改为只执行
chmod u+r,g-r,user权限加上读,用户组权限减去读
chmod a+r给所有用户加上读权限
2.目录查询的原理
先写个框架,以后再补
UNIX基础知识的更多相关文章
- UNIX环境高级编程--第一章 UNIX基础知识
第一章 UNIX基础知识 1.2 UNIX体系结构 从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.我们将这种软件称为内核(kernel),因为 它相对较小,且 ...
- 《UNIX环境高级编程》(APUE) 笔记第一章 - UNIX基础知识
1 - UNIX基础知识 Github 地址 1. 操作系统 可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.通常将这种软件称为 内核 (kernel) .( Linux 是 GN ...
- 《UNIX环境高级编程》笔记——1.UNIX基础知识
这一章节侧重一些基本概念和书中用到的一些名词. 一.引言 所有的操作都提供服务,典型的服务包括:执行新程序.打开文件.读写文件.分配存储区以及获得当前时间等. 二.UNIX体系结构 其实linux常见 ...
- 第一章:UNIX基础知识
本章内容主要是为了学习UNIX的基本知识和一些最基本的系统函数. 学习的关键就是跟随者书本敲代码.本节遇到的第一个问题就死本书的apue.h这个文件:一开始没有注意这个文件,盲目的去百度,一番百度之后 ...
- UNIX基础知识之程序和进程
一.程序 程序(program)是存放在磁盘上.处于某个目录中的一个可执行文件.使用6个exec函数中的一个由内核将程序读入存储器,并使其执行. 二.进程和进程ID 程序的执行实例被称为进程(proc ...
- UNIX环境高级编程 第1章 UNIX基础知识
所有操作系统都为运行在它之上的程序提供各种服务,典型的服务包括:执行新程序.打开文件.读写文件.分配存储空间.提供时间等. UNIX体系结构 严格来说,操作系统是一种软件,它控制计算机硬件资源,提供程 ...
- UNIX,基础知识,文件IO,文件和目录
2015.1.27星期二,早晨阴天,中午下雪了今天上午老师不上课,程序语句,记一下:main(void){ int c; while((c = getc(stdin)) != EOF) if(putc ...
- UNIX基础知识之时间值
本篇博文内容摘自<UNIX环境高级编程>(第二版),仅作个人学习记录所用.关于本书可参考:http://www.apuebook.com/. 长期以来,UNIX系统一直使用两种不同的时间值 ...
- UNIX基础知识之信号
本篇博文内容摘自<UNIX环境高级编程>(第二版),仅作个人学习记录所用.关于本书可参考:http://www.apuebook.com/. 信号(signal)是通知进程已发生某种情况的 ...
- UNIX基础知识之用户标识
一.用户ID 口令文件(/etc/passwd)登录项中的用户ID(user ID)是个数值,它向系统标识各个不同的用户.系统管理员在确定一个用户的登录名的同时,确定其用户ID.用户不能更改其用户ID ...
随机推荐
- Hibernate 事物隔离级别 深入探究
目录 一.数据库事务的定义 二.数据库事务并发可能带来的问题 三.数据库事务隔离级别 四.使用Hibernate设置数据库隔离级别 五.使用悲观锁解决事务并发问题 六.使用乐观锁解决事务并发问题 Hi ...
- UVA- 1504 - Genghis Khan the Conqueror(最小生成树-好题)
题意: n个点,m个边,然后给出m条边的顶点和权值,其次是q次替换,每次替换一条边,给出每次替换的边的顶点和权值,然后求出这次替换的最小生成树的值; 最后要你输出:q次替换的平均值.其中n<30 ...
- 科研论文提交流程与常见问题(EDAS 系统提交)
第一步 注册文章(Registering your Paper) 如上图,点击菜单中的submit paper按钮,会列出所有的会议和期刊,选择一个你要投稿的期刊或者会议,例如选择第一个2013 IE ...
- First Record
今天我在博客园安家了! R Python Scala hadoop Spark MachineLearning
- J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题
J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题 2012年03月09 ...
- 说说CSS学习中的瓶颈
虽已数年,但未就学习专门写过文章,这回破处了.苍蝇不叮没有缝隙的鸡蛋,领导不做没有跟拍的表演,同样,想到写CSS学习的文章也是有原因的(虽然我的不少行为没有原因). 情景再现(尊重隐私,下面故事中人名 ...
- IOT数据库选型——NOSQL,MemSQL,cassandra,Riak或者OpenTSDB,InfluxDB
IoT databases should be as flexible as required by the application. NoSQLdatabases -- especially key ...
- JS常用扩展
// 清除两边的空格 String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ''); }; // 合并多 ...
- css分割线 文字居中的7种实现方式
最近开始研究前端,会不定期更新一些小块代码,写下自己的学习笔记,也希望能和大家一起进步! 1.单个标签实现分隔线: <html> <head lang="en"& ...
- WinForm自定义验证控件
本文转载:http://blog.csdn.net/ziyouli/article/details/7583824 此篇博文不错:http://blog.csdn.net/sony0732/artic ...