• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






hao02171990

记录点滴的自我。
 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

2013年4月19日

操作系统 复习资料
摘要: (1)什么是操作系统,操作系统在软件层次中的地位;操作系统的设计观点(2)操作系统的形成和五大类型(批处理操作系统、分时操作系统、 实时操作系统、网络操作系和分布式操作系统)(3)操作系统的五大功能(作业管理、文件管理、存储管理、设备管理和处理机及进程管理(4)操作系统的属性:响应比、并发性(共行性)、信息的共享、保密与保护、可扩充性、可移植性、可读性、可“生成”性、可测试性、安全可靠性等(5)操作系统的“生成”、配置、设置和引导教学要求:(1)牢固掌握操作系统的定义:计算机操作系统是方便用户、管理和控制计算机软、硬件资源的系统(或程序集合);清楚地了解操作系统所处的地位:是裸机之上的第一层软 阅读全文
posted @ 2013-04-19 18:32 某某郝 阅读(484) 评论(0) 推荐(0)
 
关 于 PV 操 作
摘要: 在计算机操作系统中,PV操作是进程管理中的难点。首先应弄清PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下:P(S):①将信号量S的值减1,即S=S-1;②如果S³0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。V(S):①将信号量S的值加1,即S=S+1;②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。PV操作的意义:我们用信号量及PV操作来实现进程的同步和互斥。PV操作属于进程的低级通信。什么是信号量?信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的 阅读全文
posted @ 2013-04-19 18:31 某某郝 阅读(186) 评论(0) 推荐(0)
 
进程的状态转换
摘要: 四种进程间的状态转换:进程的状态转换图1.就绪–>执行 2.执行–>就绪 3.执行–>等待 4.等待–>就绪一、进程的三种基本状态进程在运行中不断地改变其运行状态。通常,一个运行进程必须具有以下三种基本状态。就绪(Ready)状态当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。执行(Running)状态当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。阻塞(Blocked)状态正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件可有多种,例如,等待I/O 阅读全文
posted @ 2013-04-19 18:02 某某郝 阅读(659) 评论(0) 推荐(0)
 
进程管理的实验性应用例子 .
摘要: 大致实现以下的应用例子,供交流与参考:(1)进程的控制修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,在观察程序执行时屏幕上出现的现象,并分析原因。(2)编制一段程序,使其实现进程的软中断通信。要求:使用系统调用fork( )创建两个子进程,再用系统调用signal( )让父进程捕捉键盘上来的中断信号(即按Del键);当捕捉到中断信号后,父进程调用系统调用kill( )向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:Child process 1 is killed by parent!Child process 2 is killed by parent!父进 阅读全文
posted @ 2013-04-19 17:49 某某郝 阅读(847) 评论(0) 推荐(0)
 
用链表仿真的堆栈存储
摘要: #include<stdlib.h>#include<stdio.h>struct node{ int data; struct node *next;};typedef struct node list;typedef list *link;link stack=NULL;//打印堆栈数据void print_stack(){link temp=NULL;temp=stack; if(temp==NULL) printf("\nthe stack is empty!!\n");else { while(temp!=NULL) ... 阅读全文
posted @ 2013-04-19 16:40 某某郝 阅读(183) 评论(0) 推荐(0)
 
链表程序
摘要: #include<stdio.h>#include<malloc.h>#include<stdlib.h>//定义链表节点typedef struct Node{ int data; //数据域 struct Node * pNext; //指针域}NODE, * PNODE; //NODE等价于struct Node, PNODE等价于struct Node *//函数声明PNODE createLinkList(void); //创建链表的函数void traverseLinkList(PNODE pHead); //遍历链表的函数bool isEmpt 阅读全文
posted @ 2013-04-19 13:56 某某郝 阅读(313) 评论(0) 推荐(0)
 
链表的创建方法归纳
摘要: 链表在创建是可以通过开头创建也可以通过(由后向前创建)下面主要是由后创建的方法实现 p=NULL;while(i==n) { q=(link*)malloc(sizeof(node)); q->next=p; p=q; i++; }return p; 阅读全文
posted @ 2013-04-19 13:44 某某郝 阅读(244) 评论(0) 推荐(0)
 
双向循环链表程序(C语言版)
摘要: //dblist.h#include <stdio.h>#include <stdlib.h>typedef struct tagDbNode{ int data; struct tagDbNode * left; struct tagDbNode * right;} DbNode, * pdbNode;//创建结点pdbNode CreateNode(int data){ pdbNode pnode = (pdbNode)malloc(sizeof(DbNode)); pnode->data = data; pnode->left = pnode-> 阅读全文
posted @ 2013-04-19 12:31 某某郝 阅读(314) 评论(0) 推荐(0)
 
一步一步写算法(之双向链表)
摘要: 前面的博客我们介绍了单向链表。那么我们今天介绍的双向链表,顾名思义,就是数据本身具备了左边和右边的双向指针。双向链表相比较单向链表,主要有下面几个特点: (1)在数据结构中具有双向指针 (2)插入数据的时候需要考虑前后的方向的操作 (3)同样,删除数据的是有也需要考虑前后方向的操作 那么,一个非循环的双向链表操作应该是怎么样的呢?我们可以自己尝试一下: (1)定义双向链表的基本结构typedef struct _DOUBLE_LINK_NODE{ int data; struct _DOUBLE_LINK_NODE* prev; struct _DOUBLE_LINK_NOD... 阅读全文
posted @ 2013-04-19 12:20 某某郝 阅读(214) 评论(0) 推荐(0)
 
双向链表的C实现
摘要: 双向链表需要定义一个结构体,结构体有3个属性typedef struct __Node{ int data; 数据 struct __Node *pre; 指向前一个结点指针 struct __Node *next; 指向下一个结点指针}Node;其中 pre和next指针是嵌套定义。一般链表定义一个头指针Node *head;指向链表第一个结点,如果链表为空的话,那么head == NULL。双向链表一般分为init,insert, delete, search, destroy等几种操作1、init初始化:将头指针head置为NULL即可2、insert插入:这里我只实现了在表头位置插入新 阅读全文
posted @ 2013-04-19 11:47 某某郝 阅读(476) 评论(0) 推荐(0)