zoukankan      html  css  js  c++  java
  • 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.目录查询的原理

    先写个框架,以后再补

      

  • 相关阅读:
    2020软件工程作业01
    问题清单
    2020软件工程个人作业06——软件工程实践总结作业
    感谢随笔
    2020软件工程作业05
    2020软件工程作业04
    2020软件工程作业03
    2020软件工程作业02
    2020软件工程作业01
    2020软件工程个人作业06——软件工程实践总结作业
  • 原文地址:https://www.cnblogs.com/icodefive/p/5642425.html
Copyright © 2011-2022 走看看