一.线程

线程是进程某程序段的一次运行。

  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基础知识的更多相关文章

  1. UNIX环境高级编程--第一章 UNIX基础知识

    第一章 UNIX基础知识 1.2 UNIX体系结构   从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.我们将这种软件称为内核(kernel),因为 它相对较小,且 ...

  2. 《UNIX环境高级编程》(APUE) 笔记第一章 - UNIX基础知识

    1 - UNIX基础知识 Github 地址 1. 操作系统 可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.通常将这种软件称为 内核 (kernel) .( Linux 是 GN ...

  3. 《UNIX环境高级编程》笔记——1.UNIX基础知识

    这一章节侧重一些基本概念和书中用到的一些名词. 一.引言 所有的操作都提供服务,典型的服务包括:执行新程序.打开文件.读写文件.分配存储区以及获得当前时间等. 二.UNIX体系结构 其实linux常见 ...

  4. 第一章:UNIX基础知识

    本章内容主要是为了学习UNIX的基本知识和一些最基本的系统函数. 学习的关键就是跟随者书本敲代码.本节遇到的第一个问题就死本书的apue.h这个文件:一开始没有注意这个文件,盲目的去百度,一番百度之后 ...

  5. UNIX基础知识之程序和进程

    一.程序 程序(program)是存放在磁盘上.处于某个目录中的一个可执行文件.使用6个exec函数中的一个由内核将程序读入存储器,并使其执行. 二.进程和进程ID 程序的执行实例被称为进程(proc ...

  6. UNIX环境高级编程 第1章 UNIX基础知识

    所有操作系统都为运行在它之上的程序提供各种服务,典型的服务包括:执行新程序.打开文件.读写文件.分配存储空间.提供时间等. UNIX体系结构 严格来说,操作系统是一种软件,它控制计算机硬件资源,提供程 ...

  7. UNIX,基础知识,文件IO,文件和目录

    2015.1.27星期二,早晨阴天,中午下雪了今天上午老师不上课,程序语句,记一下:main(void){ int c; while((c = getc(stdin)) != EOF) if(putc ...

  8. UNIX基础知识之时间值

    本篇博文内容摘自<UNIX环境高级编程>(第二版),仅作个人学习记录所用.关于本书可参考:http://www.apuebook.com/. 长期以来,UNIX系统一直使用两种不同的时间值 ...

  9. UNIX基础知识之信号

    本篇博文内容摘自<UNIX环境高级编程>(第二版),仅作个人学习记录所用.关于本书可参考:http://www.apuebook.com/. 信号(signal)是通知进程已发生某种情况的 ...

  10. UNIX基础知识之用户标识

    一.用户ID 口令文件(/etc/passwd)登录项中的用户ID(user ID)是个数值,它向系统标识各个不同的用户.系统管理员在确定一个用户的登录名的同时,确定其用户ID.用户不能更改其用户ID ...

随机推荐

  1. Expanding Rods(二分)

    Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 10287   Accepted: 2615 Description When ...

  2. bzoj1430

    这道题只是给bzoj1005做一个铺垫这里介绍了一个叫prufer编码的东西,就是给定一棵带标号的无根树,找出编号最小的叶子节点,写下与它相邻的节点的编号,然后删掉这个叶子节点.反复执行这个操作直到只 ...

  3. 【转】Android Recovery模式

    原文网址:http://leox.iteye.com/blog/975303 (muddogxp 原创,转载请注明) Recovery简介 Android利用Recovery模式,进行恢复出厂设置,O ...

  4. 字符串(多串后缀自动机):HDU 4436 str2int

    str2int Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total S ...

  5. 主席树:HDU 4417 Super Mario

    Super Mario Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  6. IIS 启用或关闭目录浏览

    如果不希望启用目录浏览,请确保配置了默认文档并且该文件存在. 使用 IIS 管理器启用目录浏览. 打开 IIS 管理器. 在“功能”视图中,双击“目录浏览”. 在“目录浏览”页上,在“操作”窗格中单击 ...

  7. Implement Trie (Prefix Tree) ——LeetCode

    Implement a trie with insert, search, and startsWith methods. Note:You may assume that all inputs ar ...

  8. haffman树c实现

    #include<stdio.h>#include<stdlib.h>#include<string.h>#define N 100#define M 2*N-1t ...

  9. java中创建对象 类名 对象名=new 类名(); 后面的()什么意思

    类名 对象名=new 类名();类名 对象名 这个的解释是创建名称为"对象名"的"类名"类引用变量new ; 这个的解释是实例化对象类名() 这个的解释是无参数 ...

  10. BASH_SOURCE 用法

    参考 bash少见的用法 http://blog.csdn.net/wonderisland/article/details/22892759. 原有项目里自带的启动脚本用到了bash_source获 ...