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

建立个人网站需要什么WordPress高端主题 熊

建立个人网站需要什么,WordPress高端主题 熊,邯郸一堆网络科技,建设一个公司网站需要什么条件一、进程的基本概念 进程的定义 进程是正在执行的程序,是资源分配和调度的独立单元。例如:QQ的多个聊天窗口、一个程序中多个死循环同时执行。 程序与进程的区别 程序:静态的二进制文件,存储在硬盘。进程:动态的程序运…
一、进程的基本概念
  1. 进程的定义

    • 进程是正在执行的程序,是资源分配和调度的独立单元。
    • 例如:QQ的多个聊天窗口、一个程序中多个死循环同时执行。
  2. 程序与进程的区别

    • 程序:静态的二进制文件,存储在硬盘。
    • 进程:动态的程序运行过程,存在于内存,包含创建、调度、终止等阶段。

二、进程的调度机制
  • CPU时间片轮询:CPU以毫秒级速度在多个进程/线程间切换,实现“并发”执行。

三、进程的五态图
  1. 创建态:申请PCB(进程控制块),填写信息,分配资源后进入就绪队列。
  2. 就绪态:已获取除CPU外的所有资源,等待CPU调度。
  3. 运行态:获取CPU资源,执行指令。
  4. 阻塞态:因等待I/O操作或事件而暂停。
  5. 终止态:释放资源,回收PCB。

四、虚拟内存与物理内存
  1. 物理内存:真实内存条上的存储空间。
  2. 虚拟内存
    • 进程创建时分配4GB虚拟内存(用户空间0-3G独立,内核空间3-4G共享)。
    • 虚拟内存通过映射管理物理内存,解决物理内存不足问题。
    • 32位系统虚拟内存为4GB,64位系统一般为256TB(48位地址)。

五、进程标识
  • PID:进程唯一标识符(如pidof a.out查看进程号)。
  • PPID:父进程ID。
  • PGID:进程组ID,默认继承父进程。
  • SID:会话ID,默认继承父进程。

六、特殊进程
  1. 0号进程PID=0):系统引导进程(idel)。
  2. 1号进程PID=1):init进程,回收孤儿进程。
  3. 2号进程PID=2):kthread进程,负责调度。

七、进程相关Shell指令
指令用途
ps -ef查看所有进程信息
ps -aux查看内存使用情况
ps -ajx查看进程树
kill -9 PID强制终止进程(SIGKILL信号)
kill -l查看所有信号(共62种)

八、进程状态(man ps查看)
  • R:运行/就绪
  • S:可中断休眠(如等待输入)
  • Z:僵尸进程(已终止但未被回收)
  • D:不可中断休眠(通常为I/O)
  • T:被作业控制信号停止(如Ctrl+Z挂起)

九、关键进程函数
  1. fork()

    • 功能:创建子进程,父子进程独立执行。
    • 特点:
      • 调用一次,返回两次(父进程返回子进程PID,子进程返回0)。
      • 子进程复制父进程的用户空间和文件描述符表。
  2. exit()_exit()

    • exit():库函数,刷新缓冲区后再终止进程。
    • _exit():系统调用,直接终止进程,不刷新缓冲区。
  3. wait()/waitpid()

    • 功能:阻塞回收子进程资源,防止僵尸进程。
    • waitpid支持非阻塞模式(WNOHANG选项)。

十、特殊进程处理
  1. 僵尸进程

    • 成因:子进程终止,父进程未回收资源(wait未调用)。
    • 危害:占用系统资源。
    • 解决:通过wait回收或终止父进程(由系统回收)。
  2. 孤儿进程

    • 成因:父进程终止,子进程被1号进程(init)收养。
    • 特点:无害,可被kill终止。

十一、作业示例
  • 父子进程协作拷贝文件
    • 父进程拷贝前半部分,子进程拷贝后半部分。
    • 使用diff查看两个文件是否相同
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <sys/stat.h>
#include<stdio.h>
#define BUF_SIZE 4096  // 定义缓冲区大小为4KB
int main()
{// 定义文件路径const char *src = "xiaoxin.bmp";      // 源文件路径const char *dst = "copy_xiaoxin.bmp"; // 目标文件路径struct stat st;      // 文件状态结构体int fd_src, fd_dst;  // 文件描述符/************************** 获取源文件大小 **************************/fd_src = open(src, O_RDONLY);  // 只读方式打开源文件if (fd_src < 0){perror("打开源文件失败");return -1;}fstat(fd_src, &st);    // 获取文件状态信息off_t size = st.st_size; // 文件总大小off_t half = size / 2;   // 计算半文件大小close(fd_src);          // 先关闭源文件/************************** 创建目标文件 **************************/// 创建并清空目标文件(权限rw-rw-rw-)fd_dst = open(dst, O_WRONLY | O_CREAT | O_TRUNC, 0666);if (fd_dst < 0){perror("创建目标文件失败");return -1;}ftruncate(fd_dst, size);  // 预分配目标文件空间close(fd_dst);            // 关闭目标文件/************************** 创建子进程 **************************/pid_t pid = fork();  // 创建子进程if (pid > 0){       // 父进程分支/******************** 父进程:拷贝前半部分 ********************/char buf[BUF_SIZE];  // 数据缓冲区    // 重新打开源文件if ((fd_src = open(src, O_RDONLY)) < 0){perror("父进程打开源文件失败");return -1;}// 以写方式打开目标文件if ((fd_dst = open(dst, O_WRONLY)) < 0){perror("父进程打开目标文件失败");close(fd_src);return -1;}// 定位到文件起始位置lseek(fd_src, 0, SEEK_SET);lseek(fd_dst, 0, SEEK_SET);// 分块拷贝前半部分printf("父进程开始拷贝前数据...\n");for (off_t copied = 0; copied < half;){ssize_t n = read(fd_src, buf, BUF_SIZE);  // 读取数据块if (n <= 0) break;if (write(fd_dst, buf, n) != n){         // 写入数据块perror("父进程写入失败");close(fd_src);close(fd_dst);return -1;}copied += n;}close(fd_src);close(fd_dst);wait(NULL);  // 等待子进程完成printf("================= 文件校验 =================\n");// 执行diff命令校验文件int ret = system("diff xiaoxin.bmp copy_xiaoxin.bmp");if (ret == 0) {printf("校验结果:文件完全一致!\n");} else {printf("警告:文件内容存在差异!\n");}}else if (pid == 0) {  // 子进程分支/******************** 子进程:拷贝后半部分 ********************/char buf[BUF_SIZE];// 重新打开源文件if ((fd_src = open(src, O_RDONLY)) < 0){perror("子进程打开源文件失败");_exit(-1);}// 以写方式打开目标文件if ((fd_dst = open(dst, O_WRONLY)) < 0){perror("子进程打开目标文件失败");close(fd_src);_exit(-1);}// 定位到文件中间位置lseek(fd_src, half, SEEK_SET);lseek(fd_dst, half, SEEK_SET);// 分块拷贝后半部分printf("子进程开始拷贝后数据...\n");for (off_t copied = 0; copied < size - half;){ssize_t n = read(fd_src, buf, BUF_SIZE);if (n <= 0) break;if (write(fd_dst, buf, n) != n){                                                                     perror("子进程写入失败");close(fd_src);close(fd_dst);_exit(-1);}copied += n;}close(fd_src);close(fd_dst);_exit(0);  // 子进程直接退出}return 0;
}                                                                                                                                                                                                                                                                                                                      


http://www.dtcms.com/wzjs/576561.html

相关文章:

  • 宜昌建网站企查查询官网入口
  • 上海好的网站建设公司网站制作有哪些创新
  • 无代码建站沧州做网站的公司排名
  • 游戏网站开发需求分析小型企业网站建设旅游景点网论文
  • .net 网站优化网络规划设计师教程 阿里云
  • 免费手机网站坂田杨美企业网站建设
  • 九江建设监督网站个人网页成品
  • 网站 微信认证河南省住建局官网
  • 阳明拍卖公司网站wordpress 多说样式
  • 怎么自己做网站免费的天眼查企业查询系统官网
  • 如何做服装的微商城网站建设伪静态网站配置
  • 青岛网站设计公司推荐wordpress google cdn
  • 淘宝网站的建设目的是什么意思网页设计需要做什么
  • 网站建设装修百度搜索引擎推广
  • 电话外呼系统安徽seo报价
  • 做一个网站难不难wordpress 模拟post
  • 评论回复网站怎么做广东龙盛建设工程有限公司
  • 外文网站设计网站建设首选-云端高科
  • 做图的模板下载网站图做的好的网站
  • 中国建设银行云南省分行官方网站山东建设厅执业资格注册中心网站
  • 网站排名网络推广如何制作动漫网站模板
  • 网站不让百度收录网络推广好不好干
  • 专业网站建设找哪家网站开发工资低
  • 建网站怎么上线wordpress站点进入时弹窗
  • 网站做成软件免费wordpress首页登录
  • 网站域名解析登陆做网站想要个计算器功能
  • 建设酒店网站ppt模板下载wordpress主题 单栏
  • 百度做公司网站需要多少钱郑州网络推广效果
  • 文件备案网站建设方案微信会员卡管理系统
  • 什么网站是教做纸工的北大青鸟的网站建设课程多少钱