![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
Cbird-coder
将这人工智障的时代拉回正轨
展开
-
Linux下主线程与新线程的竞争
Linux下利用pthread_create创建一个线程的原创 2014-08-28 20:49:23 · 1160 阅读 · 1 评论 -
Linux系统下I/O同步的问题
传统的Unix家族的操作系统在内核里面都有一个缓存区高速缓存或者页面高速缓存,大多数的磁盘I/O都是通过缓冲进行访问的。数据写入文件的时候,其实并没有真正地写入,内核先将数据拷贝到其中的一个缓存区,如果缓存区未写满,则不将数据排到输出队列,而是等待缓存区写满或者当内核需要重新使用这个缓存区的时候,才将该缓存区排到输出队列,此时还没有到磁盘,只有当数据到达队列的队首的时候,才进行实际的I/O操作。这原创 2015-08-05 21:39:32 · 529 阅读 · 0 评论 -
apache与Nginx的主要区别(内核多路I/O之select与epoll的区别)
高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据一些人的测试,Nginx + PHP(FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。 为什么Nginx的性能要比Apache高得多?这得益于Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络原创 2013-10-13 19:07:07 · 2090 阅读 · 0 评论 -
Linux系统下几种I/O模型
Linux下一般有阻塞、非阻塞、I/O多路原创 2014-11-18 18:19:32 · 822 阅读 · 0 评论 -
多路I/O复用分析
今天看到一个I/O性能的问题。就对这个问题思考了下。分析阻塞、非阻塞I/O,这两种I/O一个共同点是,很多I/O中无法确认那些I/O是准备好,只能通过一个个轮询的方式,这种方式下,准备好与没有准备好的I/O均会被轮询,这种效率极其低下。异步I/O,提供了一种方式,准备好的I/O,就会发送一个信号给内核,其他时间继续进行其他的操作,这种方式一个不好的就是多个I/O同时准备好,发出的信号不好处理,原创 2015-08-27 22:46:05 · 1114 阅读 · 0 评论 -
Linux系统下socket通信注意之bind函数
一般我们在测试C/S程序的时候,为了方便。一般客户端连接服务器的时候,我们会不注意客户端的ip与端口,我们只关注的是服务器端的ip与端口,这样我们就可以与server通信。 在tcp/ip协议中,我们看到TCP或者UDP数据帧,都含有源地址、源端口与目的地址、目的端口。在socket编程中,没创建一个socket句柄,都会有本地的一个IP与端口对应,这个就是源地址与源端口。如果我们原创 2015-05-21 22:51:49 · 12097 阅读 · 0 评论 -
文件夹创建以及文件删除C语言实现
文件操作相关的头文件:#ifndef HEADER_FILE_#define HEADER_FILE_#include#include#include #include#include #include#include#ifdef LINUX_FILEOPT#include#include#define ACCESS access#define MKDIR(a) m原创 2015-06-27 21:57:53 · 814 阅读 · 0 评论 -
Window下使用C语言实现目录的遍历
在遍历目录之前,先了解下windows的一个结构体:struct _finddata_t 是用来存储文件各种信息的结构体,定义如下(ps:使用此结构体的时候需要添加#include):struct _finddata_t{unsigned attrib;time_t time_create;time_t time_access;time_t time_write;_fsize_原创 2015-06-19 23:17:01 · 3872 阅读 · 1 评论 -
查看ipc资源情况及其删除共享内存命令
查看ipc资源(消息队列、共享内存、信号量)使用ipcs命令其使用的方法如下:ipcs [-a -s -q -m] -i id默认的情况直接使用-a,会打印出所有的信息,需要查看信号量使用-s,消息队列使用-q,共享内存-m。这里我创建了一个信号量,我在创建的时候配置错了参数,我想修改的我属性,但是我不想修改id,所以想到了删除,那么怎么删除呢?使用ipcrm。其使用方法如下:ipcr原创 2015-04-07 22:12:16 · 4164 阅读 · 0 评论 -
一般线程与独立线程
我们在进行多线程编程的时候,一般会使用pthread_create函数来创建线程。函数的原型如下:int pthread_create(pthread_t *thread,pthread_attr_t *attr, void *(*func)(void *),void *arg)一般我们在编程的时候会不设置第二个参数,这个参数主要来设置线程的属性,一般设为NULL,这样的话,创建的这个线程,原创 2015-03-30 09:41:15 · 2509 阅读 · 0 评论 -
Linux环境下僵死进程的产生及其避免
在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD/SIGCLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵死进程,无法正常结束,此时即使是root身份kill -9也不能杀死这类进程。补救办法是杀死僵尸进程的父进程(僵死进程的父进程必然存在),僵死进程成为"孤儿进程",过继给1号进程ini原创 2013-09-10 20:26:10 · 924 阅读 · 0 评论 -
关于进程退出状态的理解
一个进程退出的时候,向父进程发送原创 2014-11-24 15:57:44 · 2031 阅读 · 0 评论 -
linux 下 进程和线程的区别
进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个进程由几个线程组成(拥有很多相对独立的执行流的用户程序共享应用程序的大部分数据结构),线程与同属一个进程的其他的线程共享进程所拥有的全部资源。转载 2014-08-28 20:10:44 · 547 阅读 · 0 评论 -
线程互斥锁的问题(线程中使用定时器信号)
前一天利用apue的一个程序来实现一个小功能,主要是一个线程一秒中原创 2014-08-31 16:12:14 · 1228 阅读 · 0 评论 -
操作系统的启动过程分析(以Linux系统为例)
购置一台电脑,我们要做Linux系统学习,我们首先安装好了一个Centos6.5系统。从摁下电源键的那一刻到出现桌面或者是字符界面。这期间发生了什么呢?第一阶段:为搞清楚这个,从硬件到软件,首先看硬件,看下计算机主板的组成,南北桥:北桥连接CPU、内存、PCI等高速设备。南桥连接磁盘、网卡、USB、PS/2等低速设备。我们摁下电源的一刻时,首先读取BIOS芯片内数据。这个B原创 2015-08-18 00:21:00 · 1943 阅读 · 3 评论