当前位置: 首页 > news >正文

公司取名网免费版在线网站优化公司

公司取名网免费版,在线网站优化公司,央视新闻,如何手机网站建立Linux 操作系统中就是创建进程。创建进程的系统调用叫fork。在 Linux 里#xff0c;要创建一个新的进程#xff0c;需要一个老的进程调用 fork 来实现#xff0c;其中老的进程叫作父进程#xff08;Parent Process#xff09;#xff0c;新的进程叫作子进程#xff08;C… Linux 操作系统中就是创建进程。创建进程的系统调用叫fork。在 Linux 里要创建一个新的进程需要一个老的进程调用 fork 来实现其中老的进程叫作父进程Parent Process新的进程叫作子进程Child Process。 当父进程调用 fork 创建进程的时候子进程将各个子系统为父进程创建的数据结构也全部拷贝了一份甚至连程序代码也是拷贝过来的。按理说如果不进行特殊的处理父进程和子进程都按相同的程序代码进行下去这样就没有意义了。 对于 fork 系统调用的返回值如果当前进程是子进程就返回 0如果当前进程是父进程就返回子进程的进程号。这样首先在返回值这里就有了一个区分然后通过 if-else 语句判断如果是父进程还接着做原来应该做的事情如果是子进程需要请求另一个系统调用execve来执行另一个程序这个时候子进程和父进程就彻底分道扬镳了也就产生了一个分支fork了。 有个系统调用waitpid父进程可以调用它将子进程的进程号作为参数传给它这样父进程就知道子进程运行完了没有成功与否。 在操作系统中每个进程都有自己的内存互相之间不干扰有独立的进程内存空间。 对于进程的内存空间来讲放程序代码的这部分我们称为代码段Code Segment。 对于进程的内存空间来讲放进程运行中产生数据的这部分我们称为数据段Data Segment。其中局部变量的部分在当前函数执行的时候起作用当进入另一个函数时这个变量就释放了也有动态分配的会较长时间保存指明才销毁的这部分称为堆Heap。 进程自己不用的部分就不用管只有进程要去使用部分内存的时候才会使用内存管理的系统调用来登记说自己马上就要用了希望分配一部分内存给它但是这还不代表真的就对应到了物理内存。只有真的写入数据的时候发现没有对应物理内存才会触发一个中断现分配物理内存。 当分配的内存数量比较小的时候使用 brk会和原来的堆的数据连在一起这就像多分配两三个工位在原来的区域旁边搬两把椅子就行了。当分配的内存数量比较大的时候使用 mmap会重新划分一块区域也就是说当办公空间需要太多的时候索性来个一整块。 对于文件的操作下面这六个系统调用是最重要的 对于已经有的文件可以使用open打开这个文件close关闭这个文件对于没有的文件可以使用creat创建文件打开文件以后可以使用lseek跳到文件的某个位置可以对文件的内容进行读写读的系统调用是read写是write。 Linux 里有一个特点那就是一切皆文件。 启动一个进程需要一个程序文件这是一个二进制文件。启动的时候要加载一些配置文件例如 yml、properties 等这是文本文件启动之后会打印一些日志如果写到硬盘上也是文本文件。但是如果我想把日志打印到交互控制台上在命令行上唰唰地打印出来这其实也是一个文件是标准输出 stdout 文件。这个进程的输出可以作为另一个进程的输入这种方式称为管道管道也是一个文件。进程可以通过网络和其他进程进行通信建立的 Socket也是一个文件。进程需要访问外部设备设备也是一个文件。文件都被存储在文件夹里面其实文件夹也是一个文件。进程运行起来要想看到进程运行的情况会在 /proc 下面有对应的进程号还是一系列文件。 每个文件Linux 都会分配一个文件描述符File Descriptor这是一个整数。有了这个文件描述符我们就可以使用系统调用查看或者干预进程运行的方方面面。 对于一些不严重的信号可以忽略该干啥干啥但是像 SIGKILL用于终止一个进程的信号和 SIGSTOP用于中止一个进程的信号是不能忽略的可以执行对于该信号的默认动作。每种信号都定义了默认的动作例如硬件故障默认终止也可以提供信号处理函数可以通过sigaction系统调用注册一个信号处理函数。 Glibc 是 Linux 下使用的开源的标准 C 库它是 GNU 发布的 libc 库。Glibc 为程序员提供丰富的 API除了例如字符串处理、数学运算等用户态服务之外最重要的是封装了操作系统提供的系统服务即系统调用的封装。 每个特定的系统调用对应了至少一个 Glibc 封装的库函数比如说系统提供的打开文件系统调用 sys_open 对应的是 Glibc 中的 open 函数。 有时候Glibc 一个单独的 API 可能调用多个系统调用比如说Glibc 提供的 printf 函数就会调用如 sys_open、sys_mmap、sys_write、sys_close 等等系统调用。 也有时候多个 API 也可能只对应同一个系统调用如 Glibc 下实现的 malloc、calloc、free 等函数用来分配和释放内存都利用了内核的 sys_brk 的系统调用。 此文章为10月Day17学习笔记内容来源于极客时间《趣谈Linux操作系统》推荐该课程。
http://www.w-s-a.com/news/414316/

相关文章:

  • dw怎么做秋季运动会网站九江集团网站建设
  • 响应式网站建设服务商wordpress 非小工具形式 微博秀
  • 网站安全检测漏洞扫描风险等级分布建设一个网站步骤
  • 摄影网站的意义开发企业小程序公司
  • 龙岩网站设计招聘信息网上免费logo设计
  • 高端定制网站开发建站教程详解网站共享备案可以申请支付接口
  • 做房产网站接不到电话企业推广宣传方式
  • 网站建设费用不用摊销下一页p30
  • 北京 工业网站建设公司国外服务器公司有哪些
  • 怎样局域网站建设盈利网站
  • 公司做网站广告语济南建网站价格消费品展
  • 建德网站网站建设规划设计书
  • 谷歌网站流量分析wordpress置顶浮标
  • 江苏新宁建设集团网站网络规划设计师2023论文
  • 合作建站协议python wordpress采集器
  • 集团网站网页模板网站建设图片大全
  • 举报非法网站要求做笔录wordpress怎么插视频
  • 网站服务器防护如何搭建网站平台
  • 设计师接私活的网站如何做网站的搜索栏
  • ps做图下载网站网站子目录设计
  • 厦门网站制作策划高中生做网站网页
  • 高端品牌网站建设在哪济南兴田德润优惠吗专业定制网站开发公司
  • 怎么做网站卖东西汽车网站排行榜前十名
  • 网站关键字没有排名只有单页面的网站怎么做seo
  • 网站流量盈利模式宝塔没有域名直接做网站怎么弄
  • 淡蓝色网站qq推广中心
  • 设计网站价格餐饮吸引客流的活动方案
  • 手机网站建设电话百度搜索量
  • 条件查询 php网站源码中国白云手机网站建设
  • 网上注册公司流程及材料班级优化大师免费下载电脑版