进程概念1

1.认识冯诺依曼体系结构

冯诺依曼体系结构:现代计算机硬件体系结构
输入设备:键盘
输出设备:显示器
存储器:内存条
运算器:
中央处理器:cpu
控制器:
硬件结构决定了软件行为/所有的设备都是围绕存储器工作的

2.简单认识操作系统

操作系统:内核+应用
功能:管理计算机软硬件资源
定位:搞管理的软件
目的:让计算机更加好用

库函数与系统调用接口的关系:库函数封装了系统调用接口;上下级的调用关系

3.进程概念

进程概念:
什么是进程:
运行中的程序,站在操作系统的角度,进程就是pcb,是操作系统对一个运行中程序的描述,通过这个描述,实现对程序的运行调度, linux下这个pcb实际上是一个结构体 task_struct{…}
进程如何描述一个运行中的程序:
内存指针,程序计数器,上下文数据,标识符PID,状态,优先级,记账信息,IO信息
CPU的分时机制-每个程序在cpu上运行都有一个时间片,时间片运行完毕则调度切换
时间片:程序在cpu上运行的这段时间
创建一个子进程出来,跟父进程干的事情是一样的,因为它们的运行的代码和数据以及当前运行的位置都是一样的

 1 //这个demo用于体会如何创建一个进程,以及创建进程的各项细节
  2
  3
  4 #include<stdio.h>
  5 #include<unistd.h>
  6
  7 int main(){
  8     printf("----create child process start----%d\n",getpid());
  9     pid_t pid;//定义这个变量知识开辟了一块空间
10     pid = fork();//这个函数的返回值对于父子进程是不一样的:在父进程中,返回的是创建的子进
    程的pid,在子进程中返回的是0
11     if (pid == 0){
12         //这是子进程,返回值为0
13         printf("this is child %d--rpid:%d\n",getpid(),pid);
14     }
15     else if(pid > 0){
16         //这是父进程,因为父进程的返回值是子进程的pid>0
17         printf("this is parent %d--rpid:%d\n",getpid(),pid);
18     }
19     else{
20         //出错了
21         printf("fork error\n");
22     }
23     printf("----create child process end----%d\n",getpid());
24     return 0;
25 }

这个函数的返回值对于父子进程是不一样的:
在父进程中返回创建的子进程的pid
在子进程中返回的是0
通常根据fork的返回值进行代码的分流,让父子进程进入不同的判断执行体完成不同的功能
父子进程代码共享,数据独有
在这里插入图片描述

如何查看进程:
ps -ef / -aux
pid_t getpid(void)获取调用进程的ID

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值