-
AIX系统文件操作和目录操作基础
所属栏目:[Unix] 日期:2016-09-28 热度:168
副标题#e# 1、文件类型 ●普通文件 包括用户和系统的各种文本文件、代码文件、程序文件和数据文件等等。 ●目录 包括文件和子目录信息,目录采用倒树状结构。 ● 特殊文件 表示物理或逻辑设备,这些文件存放在 /dev 目录下面。 2、文件及目录名称 ●文件或[详细]
-
AIX系统vi编辑器基础
所属栏目:[Unix] 日期:2016-09-28 热度:199
1、启动编辑器 $ vi file_name 如果文件存在即可打开该文件,否则创建一个新的文件。 2、vi 编辑器的状态 vi 编辑器有两种状态: (1)命令状态 可输入各种指令,以实现 vi 的编辑功能或设置 vi 的环境 (2)文字输入状态 可直接进行文字操作 用 vi 打开或[详细]
-
UNIX环境高级编程:进程管理和通信
所属栏目:[Unix] 日期:2016-09-27 热度:171
副标题#e# 进程和程序的区别: 进程: 程序的一次执行过程 动态过程,进程的状态属性会发生变化 程序:存放在磁盘上的指令、数据的有序集合 是个文件,可直观看到 程序program 静态的概念,本身不会发生变化。指令谁来执行,数据谁来访问?cpu! 但前提是cpu[详细]
-
UNIX环境高级编程:线程和fork
所属栏目:[Unix] 日期:2016-09-27 热度:152
当线程调用fork时,就为子进程创建了整个进程地址空间的副本。子进程通过继承整个地址空间的副本,也从父进程那里继承了所有互斥量、读写锁和条件变量的状态。如果父进程包含多个线程,子进程在fork返回以后,如果紧接着不是马上调用exec的话,就需要清理[详细]
-
UNIX环境高级编程:死锁
所属栏目:[Unix] 日期:2016-09-27 热度:129
操作系统中有若干进程并发执行,它们不断申请、使用、释放系统资源,虽然系统的进程协调、通信机制会对它们进行控制,但也可能出现若干进程都相互等待对方释放资源才能继续运行,否则就阻塞的情况。此时,若不借助外界因素,谁也不能释放资源,谁也不能解[详细]
-
UNIX环境高级编程:线程和进程的区别
所属栏目:[Unix] 日期:2016-09-27 热度:135
进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于: (1)一个程序至少有一个进程,一个进程至少有一个线程。 (2)线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程[详细]
-
UNIX环境高级编程:线程同步之互斥锁、读写锁和条件变量
所属栏目:[Unix] 日期:2016-09-27 热度:84
副标题#e# 一、使用互斥锁 1、初始化互斥量 pthread_mutex_t mutex =PTHREAD_MUTEX_INITIALIZER;//静态初始化互斥量 int pthread_mutex_init(pthread_mutex_t*mutex,pthread_mutexattr_t*attr);//动态初始化互斥量 int pthread_mutex_destory(pthread_mutex[详细]
-
UNIX环境高级编程:线程限制
所属栏目:[Unix] 日期:2016-09-27 热度:192
如下图: 查看本栏目更多精彩内容:http://www.bianceng.cn/OS/unix/[详细]
-
UNIX环境高级编程:线程属性之并发度
所属栏目:[Unix] 日期:2016-09-27 热度:198
并发度控制着用户级线程可以映射的内核线程或进程的数目。如果操作系统的实现在内核级的线程和用户级的线程之间保持一对一的映射,那么改变并发度并不会有什么效果,因为所有的用户级线程都可能被调度到。但是,如果操作系统的实现让用户级线程到内核级线[详细]
-
UNIX环境高级编程:线程属性之分离属性
所属栏目:[Unix] 日期:2016-09-27 热度:91
说到线程的分离状态,我认为,之所以会有这个状态,是因为系统对某些线程的终止状态根本不感兴趣导致的。 我们知道,进程中的线程可以调用: int pthread_join(pthread_t tid, void **rval_ptr); 来等待某个线程的终止,获得该线程的终止状态,并收回所占[详细]
-
UNIX环境高级编程:互斥量属性
所属栏目:[Unix] 日期:2016-09-27 热度:114
副标题#e# 互斥量具有一些属性,通过修改这些属性可以控制锁的一些行为。缺省的互斥锁属性及其值如下: pshared: PTHREAD_PROCESS_PRIVATE type: PTHREAD_MUTEX_DEFAULT protocol: PTHREAD_PRIO_NONE prioceiling: robustness: PTHREAD_MUTEX_STALLED_[详细]
-
UNIX环境高级编程:线程私有数据
所属栏目:[Unix] 日期:2016-09-27 热度:181
副标题#e# 线程私有数据(Thread-specific data,TSD):存储和查询与某个线程相关数据的一种机制。 在进程内的所有线程都共享相同的地址空间,即意味着任何声明为静态或外部变量,或在进程堆声明的变量,都可以被进程内所有的线程读写。 一个线程真正拥有的[详细]
-
UNIX环境高级编程:System V 共享内存区
所属栏目:[Unix] 日期:2016-09-27 热度:110
副标题#e# 共享内存区域是被多个进程共享的一部分物理内存。如果多个进程都把该内存区域映射到自己的虚拟地址空间,则这些进程就都可以直接访问该共享内存区域,从而可以通过该区域进行通信。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存[详细]
-
UNIX环境高级编程:存储映射I/O(mmap函数)
所属栏目:[Unix] 日期:2016-09-27 热度:167
副标题#e# 共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共[详细]
-
UNIX环境高级编程:记录上锁(fcntl函数)以及死锁检测
所属栏目:[Unix] 日期:2016-09-27 热度:143
副标题#e# 一、记录锁 record locking 功能:当一个进程正在读或修改文件的某个部分时,它可以阻止其它进程修改同一文件区。 字节范围锁 byte-range locking 二、历史 flock函数,可以锁整个文件,不能锁文件中的一部分。 fcntl函数,增加了记录锁的功能。[详细]
-
UNIX环境高级编程:非阻塞设置
所属栏目:[Unix] 日期:2016-09-27 热度:70
非阻塞I/O使我们可以调用open、read和write这样的I/O操作,并使这些操作不会永远阻塞。如果这种操作不能完成, 则调用立即出错返回,表示该操作如继续执行将阻塞。 对于一个给定的描述符有两种方法对其指定非阻塞: (1)如果调用open获得描述符,则可指定[详细]
-
UNIX环境高级编程:select、poll和epoll
所属栏目:[Unix] 日期:2016-09-27 热度:169
一、select select目前几乎在所有的平台上支持,其良好跨平台支持也是它的一个优点,事实上从现在看来,这也是它所剩不多的优点之一。 select的一个缺点在于单个进程能够监视的文件描述符的数量存在最大限制,在Linux上一般为1024,不过可以通过修改宏定义[详细]
-
UNIX环境高级编程:epoll函数使用详解
所属栏目:[Unix] 日期:2016-09-27 热度:151
副标题#e# epoll - I/O event notification facility 在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为[详细]
-
UNIX环境高级编程:IPC总结
所属栏目:[Unix] 日期:2016-09-27 热度:55
副标题#e# IPC主要包括:管道,消息队列,信号量,共享内存, 套接字(SOCKET)。 一、IPC对象的持久性 每种IPC机制都会借助一种数据结构,这种数据结构的实例称为该IPC机制的对象(相应的,用于同步互斥的数据结构的实体也可以称为该机制的对象)。理清IPC对[详细]
-
UNIX环境高级编程:主线程与子线程的退出关系
所属栏目:[Unix] 日期:2016-09-27 热度:74
副标题#e# 我们在一个线程中经常会创建另外的新线程,如果主线程退出,会不会影响它所创建的新线程呢?下面就来讨论一下。 1、 主线程等待新线程先结束退出,主线程后退出。正常执行。 示例代码: #include stdio.h #include stdlib.h #include pthread.h #[详细]
-
UNIX环境高级编程:pthread_create的问题
所属栏目:[Unix] 日期:2016-09-27 热度:175
副标题#e# linux 下常用的创建多线程函数pthread_create(pthread_t * thread , pthread_attr_t * attr , void *(*start_routine)(void*) , void *args); 其中第一个参数用来保存线程信息,第二个参数指新线程的运行属性,可以设置为NULL,第三个参数为自定[详细]
-
UNIX环境高级编程:线程同步之互斥量
所属栏目:[Unix] 日期:2016-09-27 热度:108
互斥量(也称为互斥锁)出自POSIX线程标准,可以用来同步同一进程中的各个线程。当然如果一个互斥量存放在多个进程共享的某个内存区中,那么还可以通过互斥量来进行进程间的同步。 互斥量,从字面上就可以知道是相互排斥的意思,它是最基本的同步工具,用[详细]
-
Unix系统sar命令详解
所属栏目:[Unix] 日期:2016-09-27 热度:126
副标题#e# 在使用UNIX操作系统的过程中,我们常常会用到各种各样的问题,比如系统运行速度突然变慢,系统容易死机或者主机所带的终端常出现死机,这时我们常常猜测,是硬盘空间太小,还是内存不足?I/O出现瓶颈,或者是系统的核心参数出了问题?这时,我们[详细]
-
UNIX网络编程:套接字选项(心跳检测、绑定地址复用)
所属栏目:[Unix] 日期:2016-09-26 热度:126
01./* 设置套接字选项周期性消息检测连通性 心跳包、 心博。主要用于长连接。 02. * 参数:套接字, 1或0开启, 首次间隔时间, 两次间隔时间, 断开次数 03. */ 04.void setKeepAlive( int iSockfd , int iSockAttrOn, socklen_t iIdleTime , socklen_t iInt[详细]
-
UNIX网络编程:套接字选项(SO_REUSEADDR)
所属栏目:[Unix] 日期:2016-09-26 热度:122
1、一般来说,一个端口释放后会等待两分钟之后才能再被使用,SO_REUSEADDR是让端口释放后立即就可以被再次使用。 SO_REUSEADDR用于对TCP套接字处于TIME_WAIT状态下的socket,才可以重复绑定使用。server程序总是应该在调用bind()之前设置SO_REUSEADDR套接[详细]

浙公网安备 33038102330476号