E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
【Linux系统编程】
Linux系统编程
——进程调度浅析
概述操作系统要实现多进程。进程调度不可缺少。有人说,进程调度是操作系统中最为重要的一个部分。我认为这样的说法说得太绝对了一点,就像非常多人动辄就说“某某函数比某某函数效率高XX倍”一样。脱离了实际环境。这些结论是比較片面的。 而进程调度到底有多重要呢?首先,我们须要明白一点:进程调度是对TASK_RUNNING状态的进程进行调度。假设进程不可运行(正在睡眠或其它),那么它跟进程调度没多大关系。所以
yxwkaifa
·
2016-02-20 11:00
书单
书单list headfirst设计模式mysql高性能深入理解jvmspring实战数据结构与算法分析大数据日知录架构与算法tcp/ip详解
linux系统编程
算法设计与分析基础java并发编程艺术图解
shininguang
·
2016-02-16 09:00
[置顶] 博客导航
之循环单向链表)CCPPBlog的数据结构与算法设计模式C语言和设计模式(总结篇)史上最全设计模式导学目录(完整版)这里写链接内容xingjiarong的写最好的设计模式,设计原则设计模式C++实现这里写链接内容
linux
gatieme
·
2016-02-13 14:00
linux
博客
C语言
导航
csdn
读书列表
《深入理解nginx》2016学习计划:1.TCP/IP方面2.网络编程方面3.
Linux系统编程
方面4.C
weiyuefei
·
2016-02-01 22:00
学习linux/unix编程方法的建议-转
假设你是计算机科班出身,计算机系的基本课程如数据结构、操作系统、体系结构、编译原理、计算机网络你全修过我想大概可以分为4个阶段,水平从低到高从安装使用=>linux常用命令=>
linux系统编程
=>内核开发阅读内核源码其中学习
xp5xp6
·
2016-01-16 11:32
linux
Linux下具有基本功能的shell的具体代码实现(详细)
偶然看到一篇文章讲解了shell的实现,感觉也不是很难的样子,于是自己也开始开发自己的minishell,顺便也巩固了前一段时间学习的
linux系统编程
的知识。
NK_test
·
2015-11-15 22:32
小项目--小试牛刀
Programming
int
the
Linux
environment
[置顶] Linux下具有基本功能的shell的具体代码实现(详细)
偶然看到一篇文章讲解了shell的实现,感觉也不是很难的样子,于是自己也开始开发自己的minishell,顺便也巩固了前一段时间学习的
linux系统编程
的知识。
gao_chun
·
2015-11-15 22:00
编程
源码
linux
shell
内建命令
Linux环境高级编程
Linux环境高级编程 Linux环境高级编程 2011-08-20 14:09 一、课程目标 本次课程涵盖
Linux系统编程
的几个主要方面
·
2015-11-13 22:24
linux
Linux系统编程
:客户端-服务器用FIFO进行通信
先放下代码 回来在解释 头文件: clientinfo.h 1 struct CLIENTINFO{ 2 char myfifo[500]; 3 int leftarg; 4 int rightarg; 5 char op; 6 }; 7 typedef struct CLIENTINFO CLIENTINFO, *CLINTINF
·
2015-11-13 19:12
linux
Linux系统编程
:dup2()重定向
对于Dup2 的理解: 源代码: 1 #include <unistd.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <string.h> 5 #include <time.h> 6 7 #define MSGSIZE 2
·
2015-11-13 19:11
linux
Linux系统编程
--进程
进程 请点评 目录 1. 引言 2. 环境变量 3. 进程控制 3.1. fork函数 3.2. exec函数 3.3. wait和waitpid函数 4. 进程间通信
·
2015-11-13 19:30
linux
linux系统编程
之文件与I/O(六):fcntl 函数与文件锁
一、fcntl函数 功能:操纵文件描述符,改变已打开的文件的属性 int fcntl(int fd, int cmd, ... /* arg */ ); cmd的取值可以如下: 复制文件描述符 F_DUPFD (long) 设置/获取文件描述符标志 F_GETFD (void) F_SETFD (long) 设置/获取文件状态标志 F_GETFL (void) F_SET
·
2015-11-13 19:53
linux
linux系统编程
之进程(三):exec系列函数
一、exec替换进程映象 在进程的创建上Unix采用了一个独特的方法,它将进程创建与加载一个新进程映象分离。这样的好处是有更多的余地对两种操作进行管理。当我们创建了一个进程之后,通常将子进程替换成新的进程映象,这可以用exec系列的函数来进行。当然,exec系列的函数也可以将当前进程替换掉。 二、exec关联函数组 包含头文件<unistd.h> 功能用exec函数可以把当前进
·
2015-11-13 18:37
linux
文件进程
linux系统编程
之文件与I/O(五):打开文件的内核结构file和重定向
最近研究文件进程,稍微总结一下,以后继续补充: 一、打开文件内核数据结构 1、一个进程打开两个文件 文件状态标记:读、写、追加、同步、非阻塞等
·
2015-11-13 10:30
linux
Linux共享内存(一)
Linux系统编程
我一直看 <GNU/LINUX编程指南>,只是讲的太简单了,通常是书和网络上的资料结合着来掌握才比较全面 .在掌握了书上的内容后,再来都其他资料 .
·
2015-11-13 08:01
linux
进程函数
linux系统编程
之信号(一):信号基本概述
在写这篇文章之前,xxx已经写过了几篇关于改进程函数主题的文章,想要了解的朋友可以去翻一下之前的文章 一、为了懂得信号,先从我们最熟习的场景说起: 1. 用户输入命令,在Shell下启动一个前台进程。 2. 用户按下Ctrl-C,这个键盘输入发生一个硬件中断。 3. 如果CPU以后正在执行这个进程的代码,则该进程的用户空间代码暂停执行,CPU从用户
·
2015-11-13 06:08
linux
Linux C 程序 文件操作(
Linux系统编程
)(14)
文件操作(
Linux系统编程
)创建一个目录时,系统会自动创建两个目录.和..C语言实现权限控制函数 1 #include<stdio.h> 2 #include<stdlib.h
·
2015-11-13 03:39
linux
进程子进程
linux系统编程
之管道(一):匿名管道和pipe函数
最近一直在研究进程子进程之类的问题,现在正好有机会和大家共享一下. 一、进程间通信 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开拓一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核供
·
2015-11-13 00:44
linux
Linux系统编程
之IO_缓冲和非缓冲
下面是一段类似日志记录的代码,已获取通讯的报文内容和当时的环境参数内容,就是创建一个文件,使用标准IO的fopen、fprintf进行输出记录。但是在调试中,刚开始我就傻眼了,文件创建成功了,但是实时查看竟然没有任何数据记录。经过半天的担惊受怕和反复排查,发现是被标准IO的缓冲机制摆了一道,惭愧呀。。。 代码转自http://blog.csdn.net/mr_chenping/artic
·
2015-11-11 11:40
linux
LINUX系统编程
由REDIS的持久化机制联想到的子进程退出的相关问题
以前对wait waitpid 以及exit这几个函数只是大致上了解,但是看REDIS的AOF和RDB 2种持久化时 均要处理子进程运行完成退出和父进程需要做的什么事情,所以特定看了UNIX环境编程和
LINUX
·
2015-11-10 22:24
linux
linux系统编程
之管道(三):命令管道(FIFO)
一,匿名管道PIPE局限性 管道的主要局限性正体现在它的特点上: 只支持单向数据流; 只能用于具有亲缘关系的进程之间; 没有名字; 管道的缓冲区是有限的(管道制存在于内存中,在管道创建时,为缓冲区分配一个页面大小); 管道所传送的是无格式字节流,这就要求管道的读出方和写入方必须事先约定好数据的格式,比如多少字节算作一个消息(或命令、或记录)等等; 如果我们想
·
2015-11-01 09:47
linux
linux系统编程
之管道(一):匿名管道(pipe)
一,什么是管道 管道是Linux支持的最初Unix IPC形式之一,具有以下特点: 管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道; 只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程); 单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存
·
2015-11-01 09:46
linux
linux系统编程
之信号(八):三种时间结构及定时器setitimer()详解
一,三种时间结构 time_t://seconds struct timeval { long tv_sec; /* seconds */ long tv_usec; /* microseconds */ }; struct timespec { time_t tv_sec; /* seconds */ long tv_nsec; /* nanose
·
2015-11-01 09:46
linux
linux系统编程
之信号(七):被信号中断的系统调用和库函数处理方式
一些IO系统调用执行时, 如 read 等待输入期间, 如果收到一个信号,系统将中断read, 转而执行信号处理函数. 当信号处理返回后, 系统遇到了一个问题: 是重新开始这个系统调用, 还是让系统调用失败?早期UNIX系统的做法是, 中断系统调用, 并让系统调用失败, 比如read返回 -1, 同时设置 errno 为 EINTR中断了的系统调用是没有完成的
·
2015-11-01 09:45
linux
linux系统编程
之信号(六):信号发送函数sigqueue和信号安装函数sigaction
一,sigaction() #include <signal.h> int sigaction(int signum,const struct sigaction *act,struct sigaction *oldact)); sigaction函数用于改变进程接收到特定信号后的行为。该函数的第一个参数为信号的值,可以为除SIGKILL及SIGSTOP外的任何一个特定有效的信号(
·
2015-11-01 09:44
action
linux系统编程
之信号(四):alarm和可重入函数
一,alarm() 在将可重入函数之前我们先来了解下alarm()函数使用: #include <unistd.h> unsigned int alarm(unsigned int seconds) 系统调用alarm安排内核为调用进程在指定的seconds秒后发出一个SIGALRM的信号。如果指定的参数seconds为0,则不再发送 SIGALRM信号。后一次设定将取消前一次
·
2015-11-01 09:43
linux
linux系统编程
之信号(五):信号集操作函数,信号阻塞与未决
一,信号集及相关操作函数 信号集被定义为一种数据类型: typedef struct { unsigned long sig
·
2015-11-01 09:43
linux
linux系统编程
之信号(三):信号安装、signal、kill,arise讲解
一,信号安装 如果进程要处理某一信号,那么就要在进程中安装该信号。安装信号主要用来确定信号值及进程针对该信号值的动作之间的映射关系,即进程将要处理哪个信号;该信号被传递给进程时,将执行何种操作。 linux主要有两个函数实现信号的安装:signal()、sigaction()。其中signal()只有两个参数,不支持信号传递信息,主要是用于前32种非实时信号的安装;而sigaction()是较
·
2015-11-01 09:42
Signal
linux系统编程
之信号(一):中断与信号
一,什么是中断? 1.中断的基本概念 中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。引起中断发生的事件被称为中断源。中断源向CPU发出的请求中断处理信号称为中断请求,而CPU收到中断请求后转到相应的事件处理程序称为中断响应。 在有些情况下,
·
2015-11-01 09:41
linux
linux系统编程
之进程(七):system()函数使用
一,system()理解 功能:system()函数调用“/bin/sh -c command”执行特定的命令,阻塞当前进程直到command命令执行完毕 原型: int system(const char *command); 返回值: 如果无法启动shell运行命令,system将返回127;出现不能执行system调用的其他错误时返回-1。如果system能够顺利执行,返回那个命令
·
2015-11-01 09:40
System
linux系统编程
之进程(八):守护进程详解及创建,daemon()使用
一,守护进程概述 Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过守护进程实现的。常见的守护进程包括系统日志进程syslogd、 web服务器httpd、邮件服务器sendmail和数据库服务器m
·
2015-11-01 09:40
Daemon
linux系统编程
之进程(六):父进程查询子进程的退出,wait,waitpid
本节目标: 僵进程 SIGCHLD wait waitpid 一,僵尸进程 当一个子进程先于父进程结束运行时,它与其父进程之间的关联还会保持到父进程也正常地结束运行,或者父进程调用了wait才告终止。 子进程退出时,内核将子进程置为僵尸状态,这个进程称为僵尸进程,它只保留最小的一些内核数据结构,以便父进程查询子进程的退出状态。 进程表中代表子进程的数据项是不会立刻释放
·
2015-11-01 09:39
linux
linux系统编程
之进程(五):exec系列函数(execl,execlp,execle,execv,execvp)使用
本节目标: exec替换进程映像 exec关联函数组(execl、execlp、execle、execv、execvp) 一,exec替换进程映像 在进程的创建上Unix采用了一个独特的方法,它将进程创建与加载一个新进程映象分离。这样的好处是有更多的余地对两种操作进行管理。 当我们创建了一个进程之后,通常将子进程替换成新的进程映象,这可以用exec系列的函数来进行。当然,exe
·
2015-11-01 09:38
linux
linux系统编程
之进程(四):进程退出exit,_exit区别即atexit函数
一,进程终止有5种方式: 正常退出: 从main函数返回 调用exit 调用_exit 异常退出: 调用abort 由信号终止 二,exit和_exit区别: 关于_exit(): #include <unistd.h> &nbs
·
2015-11-01 09:38
linux
linux系统编程
之进程(二):进程生命周期与PCB(进程控制块)
本节目标: 进程状态变迁 进程控制块 进程创建 进程撤消 终止进程的五种方法 一,进程状态变迁 进程的三种基本状态 就绪(Ready)状态 当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。 执行(Running)状态 当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。 阻塞(Blocke
·
2015-11-01 09:37
linux
linux系统编程
之进程(三):进程复制fork,孤儿进程,僵尸进程
本节目标: 复制进程映像 fork系统调用 孤儿进程、僵尸进程 写时复制 一,进程复制(或产生) 使用fork函数得到的子进程从父进程的继承了整个进程的地址空间,包括:进程上下文、进程堆栈、内存信息、打开的文件描述符、信号控制设置、进程优先级、进程组号、当前工作目录、根目录、资源限制、控制终端等。 子进程与父进程的区别在
·
2015-11-01 09:36
linux
linux系统编程
之文件与IO(八):文件描述符相关操作-dup,dup2,fcntl
本节目标: 1,文件共享 打开文件内核数据结构 一个进程两次打开同一个文件 两个进程打开同一个文件 2,复制文件描述符(dup、dup2、fcntl) 一,文件共享 1,一个进程打开两个文件内核数据结构 说明: 文件描述符表:每个进程都有一张,彼此独立,每个文件描述符表项都指向一个文件表,文件描述符0(STDIN_FILENO)、1(STDOUT_F
·
2015-11-01 09:35
linux
linux系统编程
之文件与IO(六):实现ls -l功能
本文利用以下系统调用实现ls -l命令的功能: 1,lstat:获得文件状态, 2,getpwuid: #include <pwd.h> struct passwd *getpwuid(uid_t uid); 描述: The getpwuid() function returns a pointer to a structure containing the
·
2015-11-01 09:35
linux
linux系统编程
之文件与IO(五):stat()系统调用获取文件信息
一、stat()获取文件元数据 stat系统调用原型: #include <sys/stat.h> int stat(const char *path, struct stat *buf); int fstat(int fd, struct stat *buf); int lstat(const char *path, struct stat *buf); 帮助信息可通过:man
·
2015-11-01 09:34
linux
linux系统编程
之文件与IO(三):利用lseek()创建空洞文件
一、lseek()系统调用 功能说明: 通过指定相对于开始位置、当前位置或末尾位置的字节数来重定位 curp,这取决于 lseek() 函数中指定的位置 函数原型: #include <sys/types.h> #include <unistd.h> off_t lseek(int fd, off_t offset, int whence); 参数说明: fd
·
2015-11-01 09:33
linux
linux系统编程
之错误处理:perror,strerror和errno
1,在系统编程中错误通常通过函数返回值来表示,并通过特殊变量errno来描述。 errno这个全局变量在<errno.h>头文件中声明如下:extern int errno; errno是一个由POSIX和ISO C标准定义的符号,看(用)起来就好像是一个整形变量。当系统调用或库函数发生错误的时候,比如以只读方式打开一个不存在的文件时,它的值将会被改变,根据errno值的不同,我们
·
2015-11-01 09:32
linux
linux系统编程
之文件与IO(二):系统调用read和write
read系统调用 一旦有了与一个打开文件描述相连的文件描述符,只要该文件是用O_RDONLY或O_RDWR标志打开的,就可以用read()系统调用从该文件中读取字节 函数原型: #include <unistd.h> ssize_t read(int fd, void *buf, size_t count); 参数 fd :
·
2015-11-01 09:32
linux
linux系统编程
之文件与IO(一):文件描述符、open,close
什么是IO? 输入/输出是主存和外部设备之间拷贝数据的过程 设备->内存(输入操作) 内存->设备(输出操作) 高级I/O
·
2015-11-01 09:31
linux
Linux系统编程
--read/write
4. read/write read函数从打开的设备或文件中读取数据。 #include <unistd.h> ssize_t read(int fd, void *buf, size_t count); 返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾,则这次read返回0 参数count是请求读取的字节数,读上来的数据保存
·
2015-11-01 09:07
linux
linux系统编程
之管道(二):管道读写规则
一,管道读写规则 当没有数据可读时 O_NONBLOCK disable:read调用阻塞,即进程暂停执行,一直等到有数据来到为止。 O_NONBLOCK enable:read调用返回-1,errno值为EAGAIN。 当管道满的时候 O_NONBLOCK disable: write调用阻塞,直到有进程读走数据 O_NONBLOCK enable:调用返回-1,
·
2015-10-31 08:00
linux
Linux System Programming 学习笔记(一) 介绍
Linux系统编程
的三大基石:系统调用、C语言库、C编译器 系统调用:内核向用户级程序提供服务的唯一接口。
·
2015-10-30 16:24
programming
学习linux/unix编程方法的建议,学习Linux的四个步骤
假设你是计算机科班出身,计算机系的基本课程如数据结构、操作系统、体系结构、编译原理、计算机网络你全修过 我想大概可以分为4个阶段,水平从低到高 从安装使用=>linux常用命令=>
linux
·
2015-10-30 13:12
linux
Linux系统编程
@进程管理(二)
1、创建守护进程(Deamon) 守护进程的概念与作用 后台服务程序 – 系统服务,进程名字往往以’d’结尾,生存周期比较长(系统装入时启动,关闭时候终止。系统装入两种启动方式:1从启动脚本、etc/rc.d中启动;2由作业规划进程crond启动。也可以从用户终端启动,且独立于控制终端), 周期性执行某种任务或等待处理某些发生的事件。 例如:httpd ftpd lqd cro
·
2015-10-30 12:16
linux
给大家推荐一些后端开发书
《
Linux系统编程
第2版》继续是RobertLove,比起APUE也是以薄见长,专门针对重要的系统调用讲
Foundation
·
2015-10-30 10:00
读书
即时通信的相关技术:
Linux系统编程
手册 Linux内核探秘 深入理解Java虚拟机 Erlang一系列的书 汇编语言 深入理解计算机系统 CPU相关的书存储技术: PostgreSQL的代码分析
David_Alpha_Fox
·
2015-10-29 19:00
书单
上一页
20
21
22
23
24
25
26
27
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他