【OS】课设记录总结+进程整理
文章目录
- 进程
- 课程设计--Linux二级目录设计
- C知识点:
- C语言学习网站:
- linux 底层C函数
- IO函数
- 头文件 #include
进程
1.定义:程序是一个指令序列;
PCB:进程控制块,用来描述进程的各种信息,进程代码的存放位置;
PCB,程序段,数据段构成进程的实体(进程映像)
程序段、数据段、PCB三部分组成了进程实体(进程映像)。
一般情况下,我们把进程实体就简称为进程例如,所谓创建进程,实质上是创建进程实体中的PcB;而撤销进程,实质上是撤销进程实体中的PCB
注意:PCB是进程存在的唯一标志
从不同的角度,进程可以有不同的定义,比较传统典型的定义有:
- 进程是程序的‘一次’执行过程
- 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
- 进程是具有独立功能的程序在数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位
引入进程实体的概念之后,进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
注意:严格来说,进程和进程实体是不一样的,实体是静态的,进程则是动态的,
PCB:操作系统通过PCB来管理进程,因此PcB中应该包含操作系统对其进行管理所需的各种信息。
程序段:程序代码存放位置;
数据段:程序运行时使用,产生的运算数据。如全局变量,局部变量,宏定义的常量,就是存放在数据段;
介绍PCB:
进程描述信息
- 进程标识符PID
- 用户标识符UID
进程控制和管理信息
- 进程当前状态
- 进程优先级
资源分配清单
- 程序段指针
- 数据段指针
- 键盘
- 鼠标
各种寄存器值:当进程切换是需要把进程当前运行情况记录下来保存在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)
进程的特征:
- 动态性:进程是程序的一次执行过程,动态产生,变化和消亡;是进程最基本的特征
- 并发性:内存中有多个进程实体,各个进程可以并发执行;
- 独立性:进程是能够独立运行的,独立获得字样,独立接受调度的基本单位(进程)
- 异步性:各进程按各自独立的,不可预知的速度向前推进,操作系统要提供进程同步机制来解决异步问题
- 结构性:每个进程都会分配一个PCB。结构上是由PCB,数据块,程序块组成;
课程设计–Linux二级目录设计
- 使用C语言在linux系统下实验;
- 使用C++在window下模拟系统实验;
C知识点:
C语言学习网站:
C语言
fprintf() 和 printf() 之间的区别
fprintf是将字符输出到流(文件)的,printf是输出到标准输出设备(stdout)的,一般就是我们的屏幕。
如果使用fprintf(stdout, “”) ;相当于指定输出到设备也就与printf() 相同了;求长度
**strlen(str) //C len(str) #python length(str) %matlab**
输入函数
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 charpathname, int flags, mode_t mode); 参数flags 所能使用的参数旗标:
返回值:只要有一个权限被禁止返回-1,否则返回 0dup() 复制文件描述符
头文件 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++知识点
- VS 编译安全问题,解决strcpy等不安全
解决方法:
(打开)
项目->属性->C/C+±>预处理器->预处理器定义
(添加)
_CRT_SECURE_NO_DEPRECATE
_CRT_NONSTDC_NO_DEPRECATE
【OS】课设记录总结+进程整理相关推荐
- 操作系统课设之Linux 进程管理
前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...
- 操作系统课设之Windows 进程管理
前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...
- OS课设:实现二级文件目录系统
先从头才是撤,写到现在真的感觉是令人肝疼的一份课设.2019年6月27日19:16:09 老师就不说了,在站内可以直接搜到,所以还是悄悄地抱怨,WOC XiaoZhao 废话不多讲了,开始这份分析报告 ...
- 数据库课设记录 Day 3
Day 3 经过各种斟酌,砍了不少一时心血来潮想做的东西,数据库课设的核心内容就定下来了. 公司 Company 名称 字段 数据类型 id id int 公司名 name varchar(20) 地 ...
- 操作系统课设之基于信号量机制的并发程序设计
前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...
- 操作系统课设之虚拟内存页面置换算法的模拟与实现
前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...
- 操作系统课设之内存管理
前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...
- 操作系统课设之简单 shell 命令行解释器的设计与实现
前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...
- 操作系统课设之Windows 的互斥与同步
前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...
最新文章
- 区块链技术产生数字货币时代
- Java基础知识强化之IO流笔记42:IO流总结(图解)
- 二、数据库原理-设计理论
- 中秋祝福网页_中秋客户维系关怀,该送客户什么礼品?
- xp搭建 php环境,windows xp 下 LAMP环境搭建
- python编写网页游戏脚本_[大数据]用Python脚本做一些网页游戏中力所能及的自动化任务 - 码姐姐找文...
- 对设计领域中Tile和Card的理解
- Html加水印和禁用复制和右键(jquery.watermark.js)
- 必刷2022年辽宁最新消防设施操作员模拟题库及答案
- 图像处理: 超像素(superpixels)分割 SLIC算法
- 实用主义学python 云盘_麻瓜编程实用主义学Python2018,资源教程下载
- 用ImDisk在Windows 10中创建内存虚拟盘
- 上海租房。20160420
- Android 开发佳站3
- c语言可以绘制中国地图源码,echarts画中国地图,省市区地图分享
- 小学计算机画图课件第一册,小学信息技术有趣的画图工具PPT课件.ppt
- 共模干扰和差模干扰的理解
- C语言字母大小写互换的简单方法
- c语言逐语句调试和逐过程调试,逐语句调试和逐过程调试的区别
- 基础算法一一股神问题
热门文章
- 关于conda和anaconda不可不知的误解和事实——conda必知必会
- 30 多年的软件经验,总结出 10 个编写出更好代码的技巧
- CMD中文乱码出现的原因及解决办法
- 第三届山东大数据-威海赛区-民宿空置预测-排行榜
- 温州大学《机器学习》课程课件(十、聚类)
- 【NLP】21个经典深度学习句间关系模型|代码技巧
- 【数据竞赛】消费金融场景下的用户购买预测冠军方案分享
- Github标星86.4K+:常见数据结构与算法的Python实现
- 【NLP傻瓜式教程】手把手带你RNN文本分类(附代码)
- 复现经典:《统计学习方法》​第 11 章 条件随机场