public Admin(string log, string has, pom x, int ilo, string fff, ZarzadcaProcesow zzz, int il, Pamiec papa, proces ini) { o = ilo; login = log; haslo = has; p = x; slowo = fff; aktualnykatalog = "Home"; zarzadcapr = zzz; ile = il; pam = papa; init = ini; }
public void CommunicationNamed(proces p1, proces p2, string rozkaz) { string pomnazwa = p1.PID + "-" + p2.PID; Lacze d=new Lacze(); if (File.Exists(Projekt_SO_10_finalX.Properties.Settings.Default.Path + pomnazwa + ".xml") == true) { d.name = Convert.ToString(p1.PID) + "-" + Convert.ToString(p2.PID); d.source = p1.PID; d.destination = p2.PID; d.bufor = rozkaz; System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(typeof(Lacze)); using (System.IO.StreamWriter file = new System.IO.StreamWriter(Projekt_SO_10_finalX.Properties.Settings.Default.Path + d.name + ".xml")) { writer.Serialize(file, d); file.Close(); } System.Xml.Serialization.XmlSerializer reader = new System.Xml.Serialization.XmlSerializer(typeof(Lacze)); using (System.IO.StreamReader file1 = new System.IO.StreamReader(Projekt_SO_10_finalX.Properties.Settings.Default.Path + pomnazwa + ".xml")) { d = (Lacze)reader.Deserialize(file1); p2.rozkazy.Add(d.bufor); d.bufor = ""; Console.WriteLine("Przekazano"); } d.name = Convert.ToString(p1.PID) + "-" + Convert.ToString(p2.PID); d.source = p1.PID; d.destination = p2.PID; d.bufor = ""; System.Xml.Serialization.XmlSerializer writer1 = new System.Xml.Serialization.XmlSerializer(typeof(Lacze)); using (System.IO.StreamWriter file = new System.IO.StreamWriter(Projekt_SO_10_finalX.Properties.Settings.Default.Path + d.name + ".xml")) { writer1.Serialize(file, d); file.Close(); } } else { Console.WriteLine("Nie ma takiego Łącza"); } }
public Uzytkownik(string log, string has, pom x, int ilo, string fff, ZarzadcaProcesow zzz, int il, Pamiec papa, proces ini) { o = ilo; login = log; haslo = has; p = x; slowo = fff; zarzadcapr = zzz; ile = il; pam = papa; init = ini; aktualnykatalog = log; string[] t = File.ReadAllLines(sciezka); int c = t.Length; for (int i = 2; i < c - 2; i = i + 3) if (t[i] == login) gru = t[i + 2]; }
public List<proces> nazwa_kol(proces proces) { int stan; //List nazwakolejki = "NULL"; stan = proces.stan_procesu; if (stan == 0) { return k_nowy; } if (stan == 1) { return k_gotowy; } if (stan == 2) { return k_gotowy; } else { return k_oczekuj; } }
//zmienia stan procesu private void zmiensta(proces pr, int sta) { int pop_stan; // stan poprzedni pop_stan = pr.stan_procesu; if (sta > -1 && sta < 5) { pr.stan_procesu = sta; } else throw Exception(); }
public void wypisz(proces pr) { Console.WriteLine(pr.PID); foreach (proces a in pr.potomkowie) Console.WriteLine(a.PID); }
public proces utwProDziecko(int PPID, int PID, int fprio) { int x1 = 0; for (int i = 1; i < kolejka.k_wszystkich.Count; i++) { if (kolejka.k_wszystkich[i].PID == PPID) { x1 = i; } } proces rodzic = kolejka.k_wszystkich[x1]; bool bExist; bExist = kolejka.k_wszystkich.Exists(oElement => oElement.PID.Equals(PID)); if (bExist == true) { throw Exception(); } proces dziecko = new proces(PID); dziecko.rodzic = rodzic; dziecko.stan_procesu = rodzic.stan_procesu; dziecko.priorytet[1] = rodzic.priorytet[1] = fprio; dziecko.priorytet[2] = rodzic.priorytet[2]; dziecko.priorytet[0] = rodzic.priorytet[0] = fprio; dziecko.l_rozk = rodzic.l_rozk; rodzic.potomkowie.Add(dziecko); kolejka.k_nowy.Add(dziecko); kolejka.k_wszystkich.Add(dziecko); return dziecko; }
public proces utworz(proces rodzic, int name, int priorytet) { bool bExist; bExist = kolejka.k_wszystkich.Exists(oElement => oElement.PID.Equals(name)); if (bExist == true) { throw Exception(); } proces dziecko = new proces(name); dziecko.rodzic = rodzic; dziecko.stan_procesu = rodzic.stan_procesu; dziecko.priorytet[1] = rodzic.priorytet[1] = priorytet; dziecko.priorytet[2] = rodzic.priorytet[2]; dziecko.priorytet[0] = rodzic.priorytet[0] = priorytet; dziecko.l_rozk = rodzic.l_rozk; rodzic.potomkowie.Add(dziecko); kolejka.k_nowy.Add(dziecko); kolejka.k_wszystkich.Add(dziecko); return dziecko; }
public void dodajdoOczekuj(proces a) { k_oczekuj.Add(a); }
public void exec(proces pr) { kolejka.k_nowy.Remove(pr); kolejka.k_gotowy.Add(pr); zmiensta(pr,1); }
public void dodaj_doWsz(proces proPCB) { kolejka.k_wszystkich.Add(proPCB); }
static void Main(string[] args) { Admin Aktuz; Uzytkownik Aktu; int a; Uruchomienie U = new Uruchomienie(); pom g = new pom(); string slowo = null; int o = 0; int ile = 0; iwezel.create(ref g, "Root", 'k', "Root"); iwezel.create(ref g, "Home", 'k', "Root"); ZarzadcaProcesow zarzadcapr = new ZarzadcaProcesow(); Pamiec pam = new Pamiec(16 * 16); proces init = new proces(1, 20); zarzadcapr.dodaj_doWsz(init); // // String wczytane; // int o=0; // string slowo=null; // ZarzadcaProcesow zarzadcapr = new ZarzadcaProcesow(); // iwezel.create(ref g, "Root", 'k', "Root"); // iwezel.create(ref g, "Home", 'k', "Root"); // początek logowania int bre = 0; while (bre != 1) { a = U.spr(); if (a == 1) { string ha; Console.Write("Ustaw hasło do konta administratora:"); ha = Console.ReadLine(); Aktuz = new Admin("administrator", ha, g, o, slowo, zarzadcapr, ile, pam, init); using (System.IO.StreamWriter file = new System.IO.StreamWriter(Aktuz.sciezka, true)) { file.WriteLineAsync(); file.WriteLineAsync(ha); } bre = Aktuz.polecenia(); } else { Logowanie S = new Logowanie(); S.Log(); while (a != 1 && a != 2) { try { a = S.spr(); } catch (System.IndexOutOfRangeException) { Console.Write("złe dane\npodaj je jeszcze raz\n"); S.Log(); } } if (a == 2) { Aktuz = new Admin(S.login, S.haslo, g, o, slowo, zarzadcapr, ile, pam, init); bre = Aktuz.polecenia(); } if (a == 1) { Aktu = new Uzytkownik(S.login, S.haslo, g, o, slowo, zarzadcapr, ile, pam, init); bre = Aktu.polecenia(); } } } // koniec logowania return; }
//.//////////////////////////////////////////////////////// Metody Komunikacji /////////////////////////////////////////////////////// //.//////////////// Komunikacja Nienazwana /////////////// public void CommunicationNoNamed(proces p1, proces p2, int ktory) { var pro = ServiceLocator.GetService<ZarzadcaProcesow>().kolejka.k_wszystkich.Find(z => z.PID == p1.PID); if (pro.potomkowie.Exists(z => z.PID == p2.PID) == true) { var pro1 = ServiceLocator.GetService<ZarzadcaProcesow>().kolejka.k_wszystkich.Find(z => z.PID == p2.PID); if (pro1.rozkazy[ktory - 1] != "") { string rozkaz = pro1.rozkazy[ktory - 1]; pro1.rozkazy.Add(rozkaz); pro.rozkazy.Remove(rozkaz); Console.WriteLine("Przekazano"); } else { Console.WriteLine("Nie ma rozkazu o takim numerze."); } } else { Console.WriteLine("Procesy nie są spokrewnione lub nie istnieje pomiedzy nimi łącze"); } }
//.//////////////////////////////////////////////////////// Metody Komentarzy (Rozkazów) /////////////////////////////////////////// public void ClearOrder(proces p, string r) { p.rozkazy.Remove(r); }
public void UtworzLacze(proces p1, proces p2) { Lacze d = new Lacze(); d.name = Convert.ToString(p1.PID) + "-" + Convert.ToString(p2.PID); d.source = p1.PID; d.destination = p2.PID; d.bufor = ""; System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(typeof(Lacze)); using (System.IO.StreamWriter file = new System.IO.StreamWriter(Projekt_SO_10_finalX.Properties.Settings.Default.Path + d.name + ".xml")) { writer.Serialize(file, d); file.Close(); } }
public void przekazrozkaz(proces a, proces b, int ktory) { string pomnazwa = a.PID + "-" + b.PID; if (File.Exists(Projekt_SO_10_finalX.Properties.Settings.Default.Path + pomnazwa + ".xml") == true) { if (a.rozkazy[ktory - 1] != "") { string rozkaz = a.rozkazy[ktory - 1]; b.rozkazy.Add(rozkaz); a.rozkazy.Remove(rozkaz); Console.WriteLine("Przekazano"); } else { Console.WriteLine("Nie ma rozkazu o takim numerze."); } } else { CommunicationNoNamed(a, b, ktory); } }