随笔分类 -  Linux应用程序设计

摘要:为什么要进程通信?数据传输、资源共享、通知事件、进程控制。 IPC由一下三部分发展而来:UNIX进程间通信、基于System V进程间通信、POSIX进程间通信。 最初开发POSIX是为了提高UNIX环境下应用程序的可移植性。DEC的OpenVMS和Windows都支持POSIX。 进程通信的方式:管道和有名管道、信号、消息队列、共享内存、信号量、套接字。 管道是单向的,先进先出的,把一个进程的输出和一个进程的输入连接在一起,一个进程(写进程)在管道的尾部写入数据,另一个进程(读进程)从管道的头部读取数据。数据被一个进程读出后,将被从管道中删除。进程试图读空管道和向满的管道写数据都将阻塞。 . 阅读全文

posted @ 2011-11-27 10:53 SomethingReview 阅读(171) 评论(0) 推荐(0)

摘要:多线程的好处: 线程是一种非常“节俭”的多任务操作方式。在linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来 维护它的代码段、数据段和堆栈段,这是一种“昂贵”的多任务工作方式。 线程间方便通信。对不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过进程间通信的方式进行,这种方式不仅费时 ,而且很不方便。由于同一进程下的线程之间共享数据空间,一个线程的数据可以直接为其它线程所用,这不仅快捷,而且方便。 多线程使多CPU系统更加有效。操作系统会保证当线程数不大于CPU数目时,不同的线程运行于不同的CPU上。 改善程序结构。一个既长又复杂的进程可以考虑分为多个 阅读全文

posted @ 2011-11-27 10:53 SomethingReview 阅读(139) 评论(0) 推荐(0)

摘要:进程是一个具有一定独立功能的程序的一次运行活动。 程序是静态的代码,进程是动态的。 进程特点:动态性(相对于程序来说)、并发性(多个进程同时执行)、独立性(进程之间互不干扰)、异步性(进程执行有先后顺序) 进程状态:就绪(进程刚被创建还没有分到CPU时间片,进程时间片用完)、阻塞(IO请求未完成)、执行(就绪态经过进程调度进入执行态) 进程ID(PID)是标识进程的唯一数字。 父进程ID(PPID) 启动进程的用户的ID(UID) 进程互斥:有若干进程都要使用某一共享资源时,任何时刻最多允许一个进程使用,其他要使用该资源的进程必须等待,直到占用该资源者释放了该资源为止。 临界资源 临界区 进. 阅读全文

posted @ 2011-11-27 10:53 SomethingReview 阅读(195) 评论(0) 推荐(0)

摘要:linux文件编程可以使用两种方法: linux系统调用,依赖于linux操作系统 int create(const char* filename, mode_t mode) 所有打开的文件都对应一个文件描述符(非负整数,由系统分配),范围是0 - OPEN_MAX。 int open(const char* pathname, int flags) int open(const char* pathname, int flags, mode_t mode) int close(int fd) int read(int fd, const void* buf, size_t length).. 阅读全文

posted @ 2011-11-27 10:53 SomethingReview 阅读(195) 评论(0) 推荐(0)