文章目录

    • 进程
    • 课程设计--Linux二级目录设计
      • C知识点:
        • C语言学习网站:
      • linux 底层C函数
        • IO函数
  • 头文件 #include

进程

1.定义:程序是一个指令序列;

PCB:进程控制块,用来描述进程的各种信息,进程代码的存放位置;

PCB,程序段,数据段构成进程的实体(进程映像)

程序段、数据段、PCB三部分组成了进程实体(进程映像)。

一般情况下,我们把进程实体就简称为进程例如,所谓创建进程,实质上是创建进程实体中的PcB;而撤销进程,实质上是撤销进程实体中的PCB

注意:PCB是进程存在的唯一标志

从不同的角度,进程可以有不同的定义,比较传统典型的定义有:

  1. 进程是程序的‘一次’执行过程
  2. 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
  3. 进程是具有独立功能的程序在数据集合上运行的过程,它是系统进行资源分配调度的一个独立单位

引入进程实体的概念之后,进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

注意:严格来说,进程和进程实体是不一样的,实体是静态的,进程则是动态的,

PCB:操作系统通过PCB来管理进程,因此PcB中应该包含操作系统对其进行管理所需的各种信息。

程序段:程序代码存放位置;

数据段:程序运行时使用,产生的运算数据。如全局变量,局部变量,宏定义的常量,就是存放在数据段;

介绍PCB:

  1. 进程描述信息

    • 进程标识符PID
    • 用户标识符UID
  2. 进程控制和管理信息

    • 进程当前状态
    • 进程优先级
  3. 资源分配清单

    • 程序段指针
    • 数据段指针
    • 键盘
    • 鼠标
  4. 各种寄存器值:当进程切换是需要把进程当前运行情况记录下来保存在PCB中,程序计数器的值表示当前程序执行到哪一句;

2.进程的组织:在一个系统中,通常有数十、数百乃至数千个PCB。为了能对他们加以有效的管理,应该用适当的方式把这些PCB组织起来。

注:进程的组成讨论的是一个进程内部由哪些部分构成的问题,而进程的组织讨论的是多个进程之间的组织方式问题

进程的组织方式:

1.链接方式:

  • 按照进程状态将PCB分为多个队列

  • 操作系统持有指向各个队列的指针

2.索引方式:

  • 根据进程状态的不同,建立几张索引表
  • 操作系统持有指向各个索引表的指针
    !![](https://img-blog.csdnimg.cn/2021031909175560.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pjdzEyMzQ1MTU=,size_16,color_FFFFFF,t_70)![](https://img-blog.csdnimg.cn/20210319091811117.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pjdzEyMzQ1MTU=,size_16,color_FFFFFF,t_70)

进程的特征:

  1. 动态性:进程是程序的一次执行过程,动态产生,变化和消亡;是进程最基本的特征
  2. 并发性:内存中有多个进程实体,各个进程可以并发执行;
  3. 独立性:进程是能够独立运行的,独立获得字样,独立接受调度的基本单位(进程)
  4. 异步性:各进程按各自独立的,不可预知的速度向前推进,操作系统要提供进程同步机制来解决异步问题
  5. 结构性:每个进程都会分配一个PCB。结构上是由PCB,数据块,程序块组成;

课程设计–Linux二级目录设计

  • 使用C语言在linux系统下实验;
  • 使用C++在window下模拟系统实验;

C知识点:

C语言学习网站:

C语言

  1. fprintf() 和 printf() 之间的区别

    fprintf是将字符输出到流(文件)的,printf是输出到标准输出设备(stdout)的,一般就是我们的屏幕。
    如果使用fprintf(stdout, “”) ;相当于指定输出到设备也就与printf() 相同了;

  2. 求长度

    **strlen(str)   //C
    len(str)            #python
    length(str)      %matlab**
    
  3. 输入函数

    scanf("%d",len);  //C
    input(len); #python
    cin<<len; //C++
    

linux 底层C函数

IO函数
  • open()

    头文件 #include <sys/types,h> #include<sys/stat.h> #include<fcntl.h>

    函数定义: int open(const charpathname, int flags)
    int open(const char
    pathname, int flags, mode_t mode); 参数flags 所能使用的参数旗标:


    返回值:只要有一个权限被禁止返回-1,否则返回 0

  • dup() 复制文件描述符

    头文件 include <unistd.h>

    函数定义:int dup(int oldfd ) dup()用来复制参数oldfd 所指的文件描述符,并返回,共享所有锁定,读写位置和各项权限和旗帜,

  • close()

    头文件 #include <unistd.h>

    函数定义:int close(int fd) 参数fd为先前创建文件时候的文件描述符;
    返回值:顺利关闭 return 0; 发生错误返回-1;

  • read()

  • write()

  • lseed() 操作文件指针

shmat(shmid, 0, 0);

shmget(shmid, 0, 0);

signal(SIGUSR2, dealExit);

lockf(1,1,0)

getpid()

gets()

strstr()

C++知识点

  1. VS 编译安全问题,解决strcpy等不安全

解决方法:

(打开)
项目->属性->C/C+±>预处理器->预处理器定义
(添加)
_CRT_SECURE_NO_DEPRECATE
_CRT_NONSTDC_NO_DEPRECATE

【OS】课设记录总结+进程整理相关推荐

  1. 操作系统课设之Linux 进程管理

    前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...

  2. 操作系统课设之Windows 进程管理

    前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...

  3. OS课设:实现二级文件目录系统

    先从头才是撤,写到现在真的感觉是令人肝疼的一份课设.2019年6月27日19:16:09 老师就不说了,在站内可以直接搜到,所以还是悄悄地抱怨,WOC XiaoZhao 废话不多讲了,开始这份分析报告 ...

  4. 数据库课设记录 Day 3

    Day 3 经过各种斟酌,砍了不少一时心血来潮想做的东西,数据库课设的核心内容就定下来了. 公司 Company 名称 字段 数据类型 id id int 公司名 name varchar(20) 地 ...

  5. 操作系统课设之基于信号量机制的并发程序设计

    前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...

  6. 操作系统课设之虚拟内存页面置换算法的模拟与实现

    前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...

  7. 操作系统课设之内存管理

    前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...

  8. 操作系统课设之简单 shell 命令行解释器的设计与实现

    前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...

  9. 操作系统课设之Windows 的互斥与同步

    前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...

最新文章

  1. 区块链技术产生数字货币时代
  2. Java基础知识强化之IO流笔记42:IO流总结(图解)
  3. 二、数据库原理-设计理论
  4. 中秋祝福网页_中秋客户维系关怀,该送客户什么礼品?
  5. xp搭建 php环境,windows xp 下 LAMP环境搭建
  6. python编写网页游戏脚本_[大数据]用Python脚本做一些网页游戏中力所能及的自动化任务 - 码姐姐找文...
  7. 对设计领域中Tile和Card的理解
  8. Html加水印和禁用复制和右键(jquery.watermark.js)
  9. 必刷2022年辽宁最新消防设施操作员模拟题库及答案
  10. 图像处理: 超像素(superpixels)分割 SLIC算法
  11. 实用主义学python 云盘_麻瓜编程实用主义学Python2018,资源教程下载
  12. 用ImDisk在Windows 10中创建内存虚拟盘
  13. 上海租房。20160420
  14. Android 开发佳站3
  15. c语言可以绘制中国地图源码,echarts画中国地图,省市区地图分享
  16. 小学计算机画图课件第一册,小学信息技术有趣的画图工具PPT课件.ppt
  17. 共模干扰和差模干扰的理解
  18. C语言字母大小写互换的简单方法
  19. c语言逐语句调试和逐过程调试,逐语句调试和逐过程调试的区别
  20. 基础算法一一股神问题

热门文章

  1. 关于conda和anaconda不可不知的误解和事实——conda必知必会
  2. 30 多年的软件经验,总结出 10 个编写出更好代码的技巧
  3. CMD中文乱码出现的原因及解决办法
  4. 第三届山东大数据-威海赛区-民宿空置预测-排行榜
  5. 温州大学《机器学习》课程课件(十、聚类)
  6. 【NLP】21个经典深度学习句间关系模型|代码技巧
  7. 【数据竞赛】消费金融场景下的用户购买预测冠军方案分享
  8. Github标星86.4K+:常见数据结构与算法的Python实现
  9. 【NLP傻瓜式教程】手把手带你RNN文本分类(附代码)
  10. 复现经典:《统计学习方法》​第 11 章 条件随机场