logo

Crowdly

Оперативни системи-2024/2025L

Шукаєте відповіді та рішення тестів для Оперативни системи-2024/2025L? Перегляньте нашу велику колекцію перевірених відповідей для Оперативни системи-2024/2025L в courses.finki.ukim.mk.

Отримайте миттєвий доступ до точних відповідей та детальних пояснень для питань вашого курсу. Наша платформа, створена спільнотою, допомагає студентам досягати успіху!

Околина за решавање:

Ubuntu | Playgrounds | Killercoda

Излезот од извршувањата на командите го ставате во формата подолу.

Да се надгради задача 3 - (Docker Compose 1).

Барања:

1. Креирајте volumes кои што се викаат (temperature, temperaturelevel)2. Во temperature се наоѓа temperature.txt а во temperaturelevel se наоѓа temperaturelevel.txt

3. Креирајте една мрежа со име: temperature-level-network, која го има како network driver: bridge.

4. Креирајте опкружувачки променливи: LOW_TEMPERATURE, MEDIUM_TEMPERATURE, HIGH_TEMPERATURE. Заменете во Java кодот да се земаат опкружувачките променивли.  
  • LOW (LOW_TEMPERATURE, MEDIUM_TEMPERATURE) 
  • MEDIUM (MEDIUM_TEMPERATURE, HIGH_TEMPERATURE) 
  • HIGH (HIGH_TEMPERATURE, INFINITY)

5. Стартувајте го Docker compose.

6. Во командна линија излистај ја содржината на temperature и temperaturelevel volumes.

7. Во командна линија погледнете ги IPv4Address на двата контерјнери кои се во temperature-level-network.

8. Напишете на кои порти од host и кои порти внатре во контејнерот работат сервисите.

9. Во командна линија испечатете ги опкружувачки променливи на двата сервиси.

10. Променте ги вредностите на опкружувачки променливи.11. Рестартирајте го Docker compose.

Излезот од извршувањата на командите го ставате во формата подолу.

После завршувањето на задачата, стопирајте ги контејнерите!

Переглянути це питання

Околина за решавање:

Ubuntu | Playgrounds | Killercoda

Излезот од извршувањата на командите го ставате во формата подолу.

Потребно е да се направи апликација наречена ServerRoomTemperature. За таа цел има сенозори кои прибираат податоци за температурата во различни серверски соби, се со цел да се мониторира температурата во податочниот центар.

Барања на задачата:

Да се направат два Docker Compose сервиси. 

  • Да се креира Јава сервис TemperatureSensor.
    • запишува 5 нови бројки во датотека temperature.txt. 
      • Дали ќе ги запишувате бројките во датотеката со празно место или нов ред е оставено на Вас.
    • новите бројки се рандом генрирани во рангот [5, 50].
    • запишува нови бројки на секој 30 секунди.

  •  Да се креира Јава сервис TemperatureMonitor 
    • прави average на вредностите од temperature.txt
    • запишува во датотека temperaturelevel.txt колкаво е нивото на температурата.
      • Дали ќе ги запишувате нивото во датотеката со празно место или нов ред е оставено на Вас.
    • нивото се пресметува според просечната температура и може да е Low, Medium и High. Low (5 °C до 19 °C), Medium (19 °C to 35 °C), High (над 35 °C)
    • запишува колкаво е нивото на секој 60 секунди.

Во формата поставете ги командите и излезот од командна линија.

Исто така во формата прикачете ги TemperatureSensor.java, TemperatureMonitor.java, Dockerfiles, docker-compose.yml.

После завршувањето на задачата стопирајте ги контејнерите! 

Переглянути це питання

Околина за решавање:

Ubuntu | Playgrounds | Killercoda

Потребно е да се изврши nginx контејнеризација брз база на Debian основа debian:11-slim и да се овозможи хостирање на дадената датотека именувана како products.txt. Следете ги следните чекори еден по еден:

1. Контејнеризацијата направете ја преку интерактивен режим. Именувајте ја новата Docker слика како nginx-product-host-i. 

2. Креирајте и стартувајте нов контејнер nginx-product-host-i-container врз база на новокреираната слика. Овозможете портата 80 на контејнерот да биде достапна преку порта 8080 на домаќинот. По стартувањето, проверете дали контејнерот е активен и дали портите се успешно мапирани.

3. Повторете го креирањето на Docker Image на nginx брз база на Debian основа debian:11-slim, но сега преку Dockerfile. Именувајте ја сликата како nginx-product-host.

4. Креирајте контејнер од новокреираната слика, именувајте го како nginx-product-host-container и овозможете портата 80 на контејнерот да биде достапна преку порта 8081 на домаќинот. По стартувањето, проверете дали контејнерот е активен и дали портите се успешно мапирани.

5. Рачно ископирајте ја датотеката products.txt од хостот во фолдерот /var/www/html/ на двата контејнери (nginx-product-host-container, nginx-product-host-i-container)  со помош на командата docker cp. 

6. Со помош на една од командите wget или curl во домаќинот проверете дали датотеката products.txt е достапна на двете локации http://localhost:8080/products.txt и http://localhost:8081/products.txt. Доколку е успешно, повиците треба да вратат HTTP статус код 200 и да ја преземат датотеката локално во локалниот именик, доколку не е поставена опцијата -o.

7. Доколку претходните чекори успешно ги имплементиравте, направете стопирање и отстранување на двата контејнери nginx-product-host-container и nginx-product-host-i-container.

8. Креирајте нов именик во домаќинот именуван како html. Ископирајте ја датотеката products.txt во новокреираниот именик.

9. Креирајте и стартувајте го контејнерот nginx-product-host-container, но сега потребно е да мапирате volume на тој начин што новокреираниот именик кај домаќинот html ќе се мапира на патеката /var/www/html/ кај контејнерот.

- внимавајте да не ги заборавите при стартување да овозможете портата 80 на контејнерот да биде достапна преку порта 8081 на домаќинот

10. Проверете дали датотеката е достапна на локација http://localhost:8081/products.txt.

11. Потребно е да се контејнеризира Java апликацијата (ProductsManagement.java) со помош на Dockerfile. Апликацијата овозможува преглед на содржината на датотеката products.txt на попрегледен начин со тоа што ја изминува линија по линија и ги печати сите ќелии во рамки на редицата. Секоја ќелија е одделена со точка-запирка (;).

12. Изградете нова Docker слика врз база на новокреираниот Dockerfile со име products-viewer.

13. При стартувајте, направете мапирање на volume со тоа што именикот кај домаќинот html ќе се мапира на патеката /var/www/html/ кај контејнерот. Името на контејнерот нека биде products-viewer-container.

14. Проверете дали листањето на продуктите преку Java апликацијата е успешно.

15. Изменете го Java кодот, со што променливата path ќе се исчитува од опкружувачката променлива PRODUCT_FILE_PATH. 

16. Стопирајте и отстранете го контејнерот products-viewer-container и стартувајте го пак со тоа што ќе ја додадете вредност на опкружувачката променлива PRODUCT_FILE_PATH со помош на опцијата -e кај docker run командата.

17. Проверете дали успешно ќе се излистаат продуктите во датотеката.

Излезот од извршувањата на сите команди го ставате во формата подолу.

products.txt

Fridge;$600;5

TV;$1500;6

Microwave;$200;10

ProductsManagement.java

import java.io.*;

public class ProductsManagement {

public static void main(String[] args) {

String path = "/var/www/html/products.txt";

BufferedReader reader = null;

String line = null;

try {

reader = new BufferedReader(new InputStreamReader(new FileInputStream(path)));

while ((line = reader.readLine())!=null) {

String[] cells = line.split(";");

if (cells.length != 3) {

throw new RuntimeException("Invalid row!");

}

System.out.printf("Product Name: %s\n", cells[0]);

System.out.printf("Product Price: %s\n", cells[1]);

System.out.printf("Product Quantity: %s\n", cells[2]);

System.out.println("\n");

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

Переглянути це питання

Напишете командна процедура која ќе прима еден влезен аргумент кој ќе претставува име на фајл. Потребно е процедурата да го пополни наведениот фајл со содржините на сите .txt фајлови во истиот директориум за кои корисникот има пермисии за читање (нема пермисии за запишување и извршување). Така што содржината помеѓу два фајла ќе биде одделена со нов ред.

Потребно е да проверите дали е наведен влезен аргумент, доколку не е, испечатете Insert name of file!

Доколку се наведени повеќе од еден влезен аргумент, испечатете Too many input arguments!

Во сите други ситуации, зачувувајте ја содржината на исфилтрираните датотеки во наведениот фајл.

пример bash script.sh total.txt

------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------

Write a command procedure that will receive one input argument representing the name of a file. The procedure should populate the specified file with the contents of all .txt files in the same directory for which the user has read permissions (no write or execute permissions). So that the content between two files will be separated by a new line.

You need to check if an input argument is provided. If not, print Insert name of file!

If more than one input argument is provided, print Too many input arguments!

In all other situations, save the contents of the filtered files in the specified file.

example bash script.sh total.txt

Переглянути це питання

  1. Креирајте директориум со име results и во него csv датотеки со име OS1.txt и OS2.txt / Create a folder with the name results and in it csv files named OS1.txt and OS2.txt.
  2. Пополнете ги креираните датотеки со податоци за студентите кои го полагале предметот во формат: индекс датум време(минути:секунди) група статус. (преземете ја содржината од линковите) / Fill in the files you created with data for the students that took the exam for the course using the format: index date time(minutes:seconds) group status. (get the content of the files from the links below)
  3. Прикажете ја на екран содржината на креираните датотеки одделно, но и заедно. / Show the content for these files on screen, separately and together.
  4. Креирајте датотека со име total.txt во која ќе ги ископирате податоците за сите студенти од двете датотеки. / Create a file named total.txt that will have the data for all students from both files.
  5. Преместете ја датотеката total.txt во директориумот кој е дете на results, а се вика results_2023. / Move the file total.txt in a folder that is a child of results and is named results_2023.
  6. Избројте колку редови, зборови и знаци има во датотеката results.txt. / Count the number of rows, words and signs in the file results.txt.
  7. Прикажете ги на екран податоците само за студентите кои го започнале студирањето во 2023та година. / Show on the screen the data for the students that have enrolled the Faculty in 2023.
  8. Прикажете ги на екран само индекс, датум, време на студентите кои го започнале студирањето во 2021та година и имаат статус submitted. / Show on the screen the names of the students, date and time that have enrolled the Faculty in 2021 and have status submitted.
  9. Пребројте колку студенти од група А го имаат прикачено (submitted) резултатот во помалку од 30 минути. / Count how many students have submitted the results in less than 30 minutes.

Содржина на фајл OS1.txt / Contents of file OS1.txt - https://courses.finki.ukim.mk/pluginfile.php/269875/question/questiontext/712476/2/982581/OS1_B.txt

Содржина на фајл OS2.txt / Contents of file OS2.txt - https://courses.finki.ukim.mk/pluginfile.php/269875/question/questiontext/712476/2/982581/OS2_B.txt

Переглянути це питання

  1. Креирајте директориуми со име directory001 и додади датотека со име file123. / Create a directory with name directory001 and add a file named file123.
  2. Напишете команда со која ќе ја прочитате помошната документација за командата cat. Write a command to read the manual for the command cat.
  3. Променете ги пермисиите на фајлот file123 така што истиот може да го читаат и запишуваат само корисникот и неговата група. / Change the file permissions for the file named file123 so that it can be read and written into by the user and the group.
  4. Направете го претходното барање на друг начин. / Do the previous request in another way.
  5. Напишете команда со која ќе добиете информација кој сé е тековно најавен на системот.Write a command to get the info about the users which are currently logged in on the system.
  6. Креирај нов директориум directory002 и копирај ја датотеката file123 во него со ново име file234 / Create a new directory named directory002 and copy file123 into the new directory and change the name of the file to file234
  7. Избришете го директориумот directory001 кој го креиравте во рамки на оваа вежба заедно со целосната негова содржина. / Delete directory001 created in this exercise together with its content.

Переглянути це питання

Хочете миттєвий доступ до всіх перевірених відповідей на courses.finki.ukim.mk?

Отримайте необмежений доступ до відповідей на екзаменаційні питання - встановіть розширення Crowdly зараз!