操作系统
文章平均质量分 69
wandandi
这个作者很懒,什么都没留下…
展开
-
##Linux## 编写简单add/sub/mul/div函数封装为静/动态库
库是什么本质上来说,库是一种可执行代码的二进制形式,可以被操作系统直接载入内存执行。Linux下的库Linux下分为静态库和动态库,这两种库都是可以通过.o文件生成的,也是可以直接使用的。静态库 静态库文件名的命名方式是“libxxx.a”,库名前加”lib”,后缀用”.a”,“xxx”为静态库名。 链接时间: 静态库的代码是在编译过程中被载入程序中。 链接方式:静态库...原创 2018-07-16 11:55:25 · 367 阅读 · 0 评论 -
open/read/write/close等文件相关的系统接口
一、open/read/write/closeopen 函数原型: int open(const char* pathname, int flags); //openint open(const char* pathname, int flags, mode_t mode); //create作文件打开函数时 参数: pathname: 要打开的文件名 f...原创 2018-07-15 11:39:25 · 184 阅读 · 1 评论 -
Linux里ipcs -q/m/s于ipcrm -q/m/s的使用
进程间通信概述进程间通信有如下的目的:1、数据传输,一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M之间;2、共享数据,多个进程想要操作共享数据,一个进程对数据的修改,其他进程应该立刻看到;3、通知事件,一个进程需要向另一个或一组进程发送消息,通知它们发生了某件事情;4、资源共享,多个进程之间共享同样的资源。为了做到这一点,需要内核提供锁和同步机制;5、进程控制,有些进程...原创 2018-07-19 11:09:33 · 734 阅读 · 0 评论 -
popen/system和fork的区别
我们都知道fork和vfork可以创建新进程,但是创建新进程的方法并不只有这两个,这篇博客会介绍两个也可以创建新进程的函数:popen和system。popen()函数 函数原型:FILE * popen ( const char * command, const char * type ); int pclose ( FILE * stream );作用:popen()会...原创 2018-07-12 20:58:05 · 304 阅读 · 0 评论 -
简单的自主shell编写
我们打开一个终端的时候,我们可以在上面输入各种命令,从而与终端实现互动。可以发现,每当一个指令的执行结束后,终端会等待我们的下一条指令的输入。 这就类似于我们写了一个死循环,一直在等待着命令的输入。当有一条指令输入时,创建子进程并将子进程替换为命令,执行子进程并且父进程等待子进程的执行结束,从而实现交互。执行完后继续等待下一条指令到达。 要实现自主shell,我们主要在循环里要完成以...原创 2018-07-12 20:42:27 · 244 阅读 · 0 评论 -
进程和程序的区别
进程的定义:“进程”是操作系统的最基本、最重要的概念之一。但迄今为止对这一概念还没有一个确切的统一的描述。下面给出几种对进程的定义描述。进程是程序的一次执行。进程是可以并行执行的计算。进程是一个程序与其使用的数据在处理机上顺序执行时发生的活动。进程是程序在一个数据集合上的运行过程。它是系统进行资源分配和调度的一个独立单位。进程的特征:动态性:是程序的一次执行;并发性:进程是可以并发执行;独立性...原创 2018-07-23 14:10:52 · 632 阅读 · 0 评论 -
进程间通信--pipe/msgqueue/sems/shm
IPC inter-process communication进程间通信是指在不同进程之间传播或交换信息 进程间通信可分为以下几类管道(匿名管道和命名管道)system IPC 消息队列(用于数据传输)共享内存(用于数据共享)信号量(用于事件通知)POSIX IPC 消息队列共享内存互斥量条件变量信号量读写锁主要介绍常用的如管道、消息队列、信号量、共享内存这...原创 2018-07-17 15:08:35 · 609 阅读 · 0 评论 -
进程的同步与互斥概念原理
进程同步是一个操作系统级别的概念,是在多道程序的环境下,存在着不同的制约关系,为了协调这种互相制约的关系,实现资源共享和进程协作,从而避免进程之间的冲突,引入了进程同步。临界资源在操作系统中,进程是占有资源的最小单位(线程可以访问其所在进程内的所有资源,但线程本身并不占有资源或仅仅占有一点必须资源)。但对于某些资源来说,其在同一时间只能被一个进程所占用。这些一次只能被一个进程所占用的资源...原创 2018-07-17 11:56:56 · 17616 阅读 · 2 评论 -
Linux里的task_struct结构
task_struct —-linux里的PCB(process control block)PID 标识符:本进程唯一的,可区别与其他进程状态:当前进程处于何种状态优先级:进程的优先级程序计数器:要执行的下一条指令地址内存指针上下文数据I/O状态信息记账信息其他信息...原创 2018-07-10 18:27:32 · 158 阅读 · 0 评论 -
进程的调度算法
进程的调度在操作系统中是非常重要的一环,进程的常用调度算法有以下几种。 这篇博客主要讲解各种算法的优缺点先来先服务(FCFS,first come first served) 1. 易于理解实现简单,用一个队列就可以,也很公平 2. 不利于短进程,不利于i/o繁忙的进程最短作业优先(SJF,short job first) 1. ...原创 2018-07-10 18:24:46 · 140 阅读 · 0 评论 -
Linux下重要目录及指令
1.Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp/proc:proc文件系统,存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程信息,甚至可以通过更改其中某些文件来改变内核的运行状态。(process)/sys:可以通过对sys文件系统访问Lin...原创 2018-07-10 18:18:52 · 172 阅读 · 0 评论 -
内核线程、轻量级进程、用户线程的对比
线程与进程的概念在现代操作系统中,进程支持多线程。进程是资源管理的最小单元;线程是程序执行的最小单元。即线程作为调度和分配的基本单位,进程作为资源分配的基本单位。一个进程的组成实体可以分为两大部分:线程集和资源集。进程中的线程是动态的对象;代表了进程指令的执行。资源,包括地址空间、打开的文件、用户信息等等,由进程内的线程共享。线程概念的产生传统单线程进程的缺点现...原创 2018-07-27 11:03:53 · 1213 阅读 · 0 评论