google.com, pub-4617457846989927, DIRECT, f08c47fec0942fa0 Learn to enjoy every minute of your life.Only I can change my life.

Thursday, January 31, 2019

Life teaches us


In life, carrier selection is very important in life.


If we know what we can do then it gives us a direction for our life. Trust yourself to choose what's right for you. For that we set a goal and we start working on it. To achieve that goal we start focusing and our life becomes automatically a healthy and wealthy. Dream a life with thinking of future in mind. Dream creates a desires. Desires create determination, which leads us to our destiny. After our achievements we will get success. Live a life which will set inspiration for others. It will be not so easy there will be many obstacles in your life don't get demotivate by it, fight against it after looking back you will say yourself that this obstacle is very small compared to present. Journey of life will collect many memories and many contacts with a confidence. Mistakes may be happened so don't be afraid learn from it and try not to repeat it. A mistake should be your teacher, not your attacker. A mistake is a lesson, not a loss. It is temporary not a dead end. Life and time are best teachers. Life teaches us the use of time and time teaches us the value of life. Life is like a book, some chapters are happy, some are exciting and some are sad. But if you never turn the page, you will never know what the next chapter holds.

In life there is three needs Roti(food) ,kapda (Clothes) and makaan (house)
but there is one more thing that is education 
Education is never stolen from you
Knowledge is never absolute
Never stop learning because learning never stops.
Example if you once learn cycling or swimming ,you never forget if you do cycling after ten years also.
When you will chase knowledge numbers will always follow.


Saturday, January 26, 2019

Sys pro program for CPU scheduling : Priority algo. - Non premptive


PPRIIORITY.C



/* CPU scheduling : Priority algo. - Non premptive ................... */
// jobQ maintained as ascending order priority Q (1st job-highest priority)
#include<stdlib.h>
#include<stdio.h>
#define newnode (struct node *)malloc(sizeof(struct node))
struct node
{ int jobno,time,proty;  // priority
  struct node *next;
}*JOBQ=NULL;

int job=0;

void erase()
{ struct node *S;
  while(JOBQ!=NULL) { S=JOBQ;  JOBQ=JOBQ->next;  free(S);  }
  job=0;
}

struct node *Append(struct node *F)
{ struct node *s,*t,*s1=NULL;
  t=newnode;        t->next=NULL;
  t->jobno=++job;   t->time=0;

  do  // validation check for job time
  {  printf("\nJOB %d - CPU burst : ",job);
     fflush(stdin); scanf("%d",&t->time);
     if(t->time<=0) printf("\nJob time should be > 0");
  }while(t->time<=0);

  do  // validation check for priority range 1-5
  {  printf("\t Priority : ",job);
     fflush(stdin);  scanf("%d",&t->proty);
     if(t->proty<1 || t->proty >5) printf("\nPriority range is 1(H) to 5(L) ");
  }while(t->proty<1 || t->proty >5);

  if(F==NULL)  F=t;    // JOBQ empty, so this is 1st job
  else    // priority wise insert (acsending oreder priority)
  {  for(s=F; s!=NULL; s1=s, s=s->next)  // find position
     { if(t->proty < s->proty) break;
     }
     t->next=s;  // insert before s
     if(s1==NULL) F=t;  // added before 1st node
     else s1->next=t; // inbetween position
  }
  return F;
}

void CreateJOBQ()
{ struct node *S;   int i,n;
  printf("\nHow many jobs? "); scanf("%d",&n);
  if(n<=0) { printf("\nError : No. of Jobs should be > 0."); return; }

  if(JOBQ!=NULL) erase(JOBQ);

  for(i=1;i<=n;i++)  JOBQ=Append(JOBQ);
}

void DisplayJOBQ()  // sorted on priority
{struct node *T;
  if(JOBQ==NULL) printf("\nJOB Q is Empty!");
  else
  { printf("\n JOB  Time  Priority");
    for(T=JOBQ;T!=NULL;T=T->next) printf("\n J%d : %3d %4d",T->jobno,T->time,T->proty);
  }
}

void delFstNode() // deletes 1st job(highest priority) from JOBQ
{struct node *t;
   t=JOBQ; JOBQ=JOBQ->next;
   free(t);
}

void ExecuteJOBQ()  // Shortest Job First
{ struct node *T,*S=NULL,*t1;  int time=0; char choice;

  if(JOBQ==NULL) { printf("\nJOB Q is Empty!"); return; }

  printf("\nclock CPU   JOBQ ");
  printf("\n%3d  -idle-",time);
  for(T=JOBQ; T!=NULL; T=T->next) printf(" J%d(%d) ",T->jobno,T->time);  // print JOBQ

  while(JOBQ!=NULL)
  {
    printf("\n%3d  J%d(%d) |--",time,JOBQ->jobno,JOBQ->time); // cpu allocated
    time+=JOBQ->time; // increment clock
    delFstNode();  // job finished
    for(T=JOBQ; T!=NULL; T=T->next) printf(" J%d(%d:%d) ",T->jobno,T->proty,T->time);  // print JOBQ

    printf(" --|  Add New Job(y/n)? ");  choice=getche();
    if(choice=='y' || choice=='Y')  JOBQ=Append(JOBQ);
  }
  printf("\n%3d  -idle-",time);
}

char menu()
{ char choice='a';
  clrscr();
  printf("\n< Priority : NonPreemptive > ");
  printf("\nC: Create \nD: Display \nE: Execute \nX: exit");
  printf("\nEnter your choice : ");  choice=getche();
  return toupper(choice);
}

void main()
{
  while(1)
  { switch(menu())
    { case 'X' : erase(); exit(0);  // release memory allocated to JOBQ
      case 'C' : CreateJOBQ();  break;
      case 'D' : DisplayJOBQ(); break;
      case 'E' : ExecuteJOBQ(); break;
      default  : printf("\7 Invalid Choice!");
    }
    printf("\npress any key to continue...");    getch();
  }
}









ASMB2.C

#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>

struct symtab
{
    char name[10];
    int used,declared,addr,length,value;
}s[10];

int symtab_cnt;

int check_if_valid_opode(char tok[]);

int search_into_symtab(char *st)
{
    int i;
    for(i=0;i<symtab_cnt;i++)
        if(strcmpi(st,s[i].name)==0)
            return i;
    return -1;
}


char optab[][10]={"stop","add","sub","mult","mover","movem","comp","bc",
             "div","read","print"};
char regtab[][6]={"areg,","breg,","creg,","dreg,"};
char oprtab[][6]={"le,","lt,","eq,","gt,","ge,","any,"};
char adtab[][6]={"start","end","ltorg","origin"};

int optab_cnt=11;
int regtab_cnt=4;
int oprtab_cnt=6;
int adtab_cnt=4;



void display()
{
    int m;
    for(m=0;m<symtab_cnt;m++)
        if(s[m].used == 1 && s[m].declared == 0)
            printf("\nSymb %s used but not defined",s[m].name);
        else if(s[m].used == 0 && s[m].declared == 1)
            printf("\nSymb %s defined but not used",s[m].name);
    getch();
}



main(int argc,char *argv[])
{

    FILE *fp;
    char *w[4],*error[15];
    char str[80],line[80];
    int notok,i,p=0,k,j,cnt=0,h;
    clrscr();
    fp=fopen(argv[1],"r");
    if(fp==NULL)
    {
        printf("\nFile can not be opened...");
        getch();
        exit(1);
    }

    for(i=0;i<4;i++)           //Allocating memory to token variables
        w[i]=(char *)malloc(10);

    cnt=0;
    while(fgets(str,80,fp))
    {
        cnt++;
        printf("%d : %s",cnt,str);
        notok=sscanf(str,"%s%s%s%s",w[0],w[1],w[2],w[3]);
        switch(notok)
        {

            case 2:k=check_if_valid_opcode(w[0]);
                if(k==9||k==10)
                {
                    h=search_into_symtab(w[1]);
                    if(h==-1)
                    {
                        strcpy(s[symtab_cnt].name,w[1]);
                        s[symtab_cnt++].used=1;
                    }
                    continue;
                }
                break;

            case 3:k=check_if_valid_opcode(w[0]);.

                if(k>=1&&k<=8)
                {
                    h=search_into_symtab(w[2]);
                    if(h==-1)
                    {
                        strcpy(s[symtab_cnt].name,w[2]);
                        s[symtab_cnt++].used=1;
                    }
                    continue;
                }

                if(strcmpi(w[1],"ds")==0 || strcmpi(w[1],"dc")==0)
                {
                    h=search_into_symtab(w[0]);
                    if(h==-1)
                    {
                        strcpy(s[symtab_cnt].name,w[0]);
                        s[symtab_cnt++].declared=1;
                    }
                    else
                    {
                        if(s[h].declared==0)
                        {
                            s[h].declared=1;
                        }
                        else
                            printf("Multiple declaration");
                    }
                }
                break;

            case 4:h=search_into_symtab(w[0]);
                if(h==-1)
                {
                    strcpy(s[symtab_cnt].name,w[0]);
                    s[symtab_cnt++].declared=1;
                }
                break;
        }

    }
    display();

    getch();

}


int check_if_valid_opcode(char tok[])
{
    int i;
    for(i=0;i<optab_cnt;i++)
        if((strcmpi(tok,optab[i]))==0)
            return i;
    return -1;
}








अच्छे विचार करे विचार

  पहचान की नुमाईश, जरा कम करें... जहाँ भी "मैं" लिखा है, उसे "हम" करें... हमारी "इच्छाओं" से ज़्यादा "सुन...