Posty

Wyświetlam posty z etykietą ANSI C

[ANSI C][LINUX] Wątki / THREADS, muteksy

Obraz
Program nr 1: watki.c Program uruchamia 6 watkow i wyswietla info o ich stanie (czy sa w sekcji kryt czy tez nie). W sekcji krytycznej wypisuje nr watku ktory ja wykonuje oraz pokazuje wartosc zmiennej globalnej, oraz wyswietla info gdy watek opuszcza sekcje krytyczna. Gdy sterowanie watku jest w sekcji krytycznej naliczanie jest wstrzymane. Na koniec wypisuje wartosc zmiennej dzielonej, ktora jest rowna ilości watkow pomnozonej przez ilosc wywolan (w tym przypadku 4 wywolania dla 6 watkow); _____________________________________________________________________ ____________________________________________________________________ KOMPILACJA... ---------------------------------------------------------------------- W katalogu znajduje sie plik MAKEFILE z podstawową funkcjonalnością. W celu skompilowania plików, należy wykonać komendę: make ... I URUCHOMIENIE ---------------------------------------------------------------------- w celu uruchomienia progra...

[ANSI C][LINUX] Kolejki komunikatow - klient i serwer

Obraz
Program nr 1: server: kolejka.h funkcje.c serv.c odbiera ciag znakow i przetwarza go odsylajac do klienta (zmienia litery komunikatu na duze) Aby zamknac program serwera prosze wcisnac CTRL+C, gdyż napisalem stosowna funkcje ktora usuwa kolejke komunikatow zanim zabije proces serwera. Programy nr 2/3/4: klient/2/3: kolejka.h funkcje.c klient/2/3.c (takie same, roznia sie jedynie wysylanym tekstem) wysylaja do procesu serwera ciag znakow Po wpisaniu polecenia ' make run_client ' otworzy sie kilka terminali z ktorych zostanie wyslany komuinikat do serwera, po czym zamkna sie i zostanie tylko jeden(procz terminalu z serwerem) ktory wyswietli stosowne komunikaty. _____________________________________________________________________ _____________________________________________________________________ KOMPILACJA... ---------------------------------------------------------------------- W katalogu znajduje sie plik MAKEFILE z podstawową funkcjon...

[ANSI C pseudo kod][LINUX] Pamiec dzielona: wielu konsumentow i wielu producentow

Uogolnienie problemu na wielu producentow i wielu konsumentow w pseudokodzie klik:

[ANSI C][LINUX] Semafory: wzajemne wykluczanie sie procesow

Przy pomocy semaforow systemu UNIX zaimplementowac zadanie wzajemnego wykluczania dla procesow. Czas operacji na wspolnym zasobie symulowac uzywajac np. funkcji sleep. Dla demonstracji poprawnosci dzialania programu uzyc odpowiednich komunikatow wypisywanych przez poszczegolne procesy przed, w trakcie i po sekcji krytycznej oraz funkcji podajacych stan semafora i liczbe procesow pod nim czekajacych. Pamietac o zainicjowaniu semafora odpowiednia wartoscia zaraz po jego utworzeniu. Stworzyc wlasna biblioteke prostych w uzyciu funkcji do: tworzenia, uzyskiwania dostepu, inicjowania, sterowania, operowania i usuwania semaforow (korzystajacych z odpowiednich funkcji systemowych, ale ukrywajacych ich szczegoly techniczne). Napisac specjalny program do powielania procesow realizujacych wzajemne wykluczanie – w oparciu o funkcje fork i exec (nazwe programu do inicjowania procesow oraz liczbe procesow mozna przekazywa´c przez argumenty programu ,,powielacza”). Program ten powinien na poczatku u...

[AnSI C][LINUX] Producent - Konsument: potoki nienazwane

Zaimplementować problem "producenta i konsumenta" przy pomocy programu, który: Tworzy nienazwany potok do komunikacji między procesem głównym (producentem) a procesem potomnym (konsumentem) Producent przesyła fragmentami zawartość pliku tekstowego do potoku Konsument odczytuje zawartość potoku i zapisuje do innego pliku tekstowego Po zakończeniu działania programu plik wejściowy i plik wyjściowy powinny być identyczne. klik:

[ANSI C][LINUX] Wysyłanie i obsługa sygnałów

Napisać program do obsługi sygnałów z możliwościami: Wykonania operacji domyślnej Ignorowania Przechwycenia i własnej obsługi sygnału Numer sygnału i opcja obsługi może być np. podana za pomocą argumentów wywołania programu. Uruchomić program i przetestować, wysłając do niego sygnał przy pomocy sekwencji klawiszy lub polecenia kill. Napisać program, który: Uruchomi powyższy program przy pomocy exec() i z procesu macieżystego wyśle do procesu potomnego sygnał przy pomocy funkcji kill() Uruchomi grupę kilku procesów i wyśle sygnały do całej grupy procesów klik:

[ANSI C][LINUX] Uruchamianie Programów: exec

Zmodyfikować poprzedni program tak, aby komunikaty procesów potomnych były wypisywane przez program uruchamiany przez funkcję exec . klik:

[ANSI C][LINUX] Procesy Potomne: fork

Napisać program wypisujący identyfikatory UID, GID, PID, PPID i PGID dla danego procesu. Wywołać funkcję fork 3 razy (np. w pętli) i wypisać powyższe identyfikatory dla wszystkich procesów potomnych. Wstawić funkcję sleep tak, aby procesy pojawiały się na ekranie grupowane pokoleniami od najstarszego do najmłodszego. Na podstawie wyników programów narysować "drzewo genealogiczne" tworzonych procesów (z zaznaczonymi identyfikatorami). BARDZO PROSZĘ O KOPIOWANIE Z GŁOWĄ, JEŚLI JUŻ KTOŚ MUSI(ALE RADZĘ PISAĆ SAMEMU), BO ZA PLAGIATY NA UJ WYWALAJĄ Z KURSU I A JAK OPIEKUN SIEZIRYTUJE TO I ZE STUDIÓW :)

Baza danych [ANSI C]

tu program zaliczeniowy z którym miałem maaaaasę i jeszcze więcej kłopotów. może nie jest napisany idealnie, brak mu parę rzeczy, no ale - działa :P

szyfrator[ANSI C]

a tutaj prosty przykład szyfratora z użyciem XOR. zaczerpnięte z KLIK  i nieco zmienione przeze mnie. Poniżej kod mój i skopiowany z tamtego bloga (w drugiej wklejce). klik:

Norma macierzy[ANSI C]

takie tam coś, co liczy normę PODANEJ W KODZIE macierzy. jak znalazł na kolosa na którym nie ma się czasu napisać wprowadzania macierzy. klik:

separatory w ciągu znaków [ANSI C]

czyli podajemy ciąg znaków, np @#$ i separator, np 6, a wynik będzie: @6#6$6 ;p klik:

średnia arytmetyczna z macierzy 1 wierszowej[ANSI C]

szczerze mówiąc to dawno nie programowałem, i tak dla treningu robię jakieś proste programiki ;D anyway, początkującym programistom i takie pierdoły potrafią uprzykrzać życie, więc dodaję. klik:

First

ave z nudów i chęci treningu postanowiłem zrobić tego bloga, na którym będą pojawiać się implementacje różnych mniej i bardziej zaawansowanych rzeczy (pisane na zajęciach na studiach) w C++.../ lub ANSI C (zależy czy będzie co wstawiać ;D)