Лабораторна робота №3(1)
.docxТехнічний коледж
НУ "Львівська політехніка"
Лабораторна робота №3 З ОС
Студент групи 31КІ Мартинюк Р.
Викладач
Різник О. Я.
Львів 2020
Мета: створення алгоритму організації сторінок за квантом часу.
Код програми:
public class Main {
public static void main(String[] args)
{
printOut result = new printOut();
result._print();
}
}
public class getProgsSize
{
public int[] pages = new int[80];
public int[] progs = new int[80];
public int[] progs_numb = new int[80];
public int i;
public Scanner sc = new Scanner(System.in);
private int size = 80;
private int getted_pr_size;
private int j;
void _get ()
{
i=0;
while (size!=0)
{
System.out.println("Максимальний розмір = " + size);
System.out.print("Розмір програми №" + (i+1) + " = ");
if (sc.hasNextInt())
{
getted_pr_size = sc.nextInt();
if (getted_pr_size == 0) break;
else
{
if (getted_pr_size <= size)
{
progs[i]=getted_pr_size;
size-=getted_pr_size;
i++;
}
else
{
System.out.println();
getted_pr_size = 0;
System.out.println("Введений розмір програми завеликий - програма не поміститься у пам'ять\n");
}
}
} else System.out.println("Ви ввели не число");
System.out.println();
}
}
private void test_()
{
for (j=0;j<=i;j++) System.out.println (progs[j]);
}
}
public class pageOrganizer {
public getProgsSize data = new getProgsSize();
public int j;
public int k = 0;
private int i = 0;
private int size = 0;
public void organize() {
data._get();
for (j = 0; j < data.i; j++) size += data.progs[j];
while (size > 0)
{
if (data.progs[i] > 4) {
data.progs[i] -= 4;
size -= 4;
data.pages[k] = 4;
data.progs_numb[k] = i+1;
}
else
if
(data.progs[i] == 4)
{
data.pages[k] = 4;
data.progs[i] = 0;
data.progs_numb[k] = i+1;
size -= 4;
i++;
}
else
if
(data.progs[i] < 4)
{
data.pages[k] = data.progs[i];
data.progs_numb[k] = i+1;
size -= data.progs[i];
data.progs[i] = 0;
i++;
}
k++;
}
}
}
public class printOut
{
private int i;
private pageOrganizer PO = new pageOrganizer();
public void _print()
{
PO.organize();
for (i = 0; i < PO.k; i++)
{
System.out.printf("%2d) Программа №%2d | розмір сторінки = %d\n", i+1, PO.data.progs_numb[i], PO.data.pages[i]);;
}
System.out.println("Кількість сторінок = " + i + "\n" + "Кількість процесів = " + PO.data.progs_numb[i-1]);
}
}
Результат: