Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

задание По дисциплине- Операционные системы Выполнил студент Группы Проверил- А

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 25.11.2024

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

Волгоградский государственный технический университет

Факультет послевузовского образования

Кафедра «Cистемы автоматизированного проектирования и

поискового конструирования»

Семестровое задание

По дисциплине: «Операционные системы»

Выполнил студент

Группы __________

Проверил:

Албегов Е.В.

Волгоград 2013 г.

Задание 1.

Привести краткую сравнительную характеристику операционных систем семейства Windows и Linux в виде сводной таблицы.

Задание 2.

Изучение практической реализации потоков выполнения и синхронизации в ОС на примере программы с использованием многопоточности:

#include <pthread.h>

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <unistd.h>

#define NUM_THREADS 6

void *thread_function(void *arg);

int main() {

int res;

int lots_of_threads;

pthread_t a_thread[NUM_THREADS];

void *thread_result;

srand ( (insigned)time(NULL) );

for (lots_of_threads = 0; lots_of_threads < NUM_THREADS;

lots_of_threads++)

{

res = pthread_create (&(a_thread[lots_of_threads]),NULL,

thread_function, (void *)&lots_of_threads);

if (res != 0) {

perror(“Thread creation failed”);

exit(EXIT_FAILURE);

}

}

printf(“Waiting for threads to finish...\n”);

for (lots_of_threads = NUM_THREADS - 1; lots_of_threads >= 0;

lots_of_threads--)

{

res = pthread_join (a_thread[lots_of_threads],&thread_result);

if (res == 0) printf(“Picked up a thread\n”);

else perror(“pthread_join failed”);

}

printf(“All done\n”);

exit(EXIT_SUCCESS);

}

void *thread_function(void *arg) {

int my_number = *(int *)arg;

int rand_num;

printf (“thread_function is running. Argument was %d\n”,

my_number);

rand_num=1+(int)(9.0*rand()/(RAND_MAX+1.0));

printf (“Bye from %d\n”, my_number);

pthread_exit(NULL);

}

Задачи:

  1.  Изучение основных программных средств управления потоками в ОС.
  2.  Написание комментариев к представленному программному коду.

Задание 3.

Изучение практической реализации процессов и синхронизации в ОС на примере программы с использованием семафора:

#include <unistd.h>

#include <stdio.h>

#include <error.h>

#include <sys/types.h>

#include <sys/wait.h>

#include <sys/sem.h>

#include <sys/ipc.h>

#include <fcntl.h>

#include <time.h>

#include <iostream.h>

#define MAXLINE 128

#define SVSEM_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)

#define SKEY 1234L

union semun {

int val;

struct semid_ds *buf;

ushort *array;

};

int var;

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

char filename[] = "./rezult.txt";

pid_t pid;

time_t ctime;

int oflag, c, semid;

struct tm *ctm;

union semun arg;

struct semid_ds seminfo;

struct sembuf psmb;

unsigned short *prt = NULL;

var = 0;

oflag = SVSEM_MODE | IPC_CREAT;

printf("Parent: Creating semaphore...\n");

semid = semget(SKEY, 1, oflag);

arg.buf = &seminfo;

printf("Parent: Getting info about semaphore (not required, for

example)...\n");

semctl(semid, 0, IPC_STAT, arg);

g.buf->sem_ctime;

ctm = localtime(&ctime);

printf("%s %d %s %d %s %d %s","Parent: Creating time - ",

ctm->tm_hour,":",ctm->tm_min,":",ctm->tm_sec,"\n");

arg.val = 5;

printf("%s %d %s","Parent: Setting value \"",arg.val, "\" to

semaphores...\n");

semctl(semid, 0, SETVAL, arg);

printf("Parent: Creating child process...\n");

if ((pid = fork()) == 0) { // child process ;

printf(" Child: Child process was created...\n");

struct sembuf csmb;

unsigned short semval;

union semun carg;

int oflag = SVSEM_MODE | IPC_EXCL;

printf(" Child: Opening semaphore...\n");

int smd = semget(SKEY, 1, oflag); //

csmb.sem_num = 0;

csmb.sem_flg = 0;

csmb.sem_op = -1;

printf(" Child: Locking semaphore...\n");

semop(smd,&csmb,1);

printf(" Child: Do something...\n");

printf(" Child: Done something...\n");

carg.buf = NULL;

carg.array = &semval;

semctl(smd,0,GETALL,carg);

semval = *carg.array;

printf("%s %d %s"," Child: Semaphore value = ",semval,"\n");

csmb.sem_num = csmb.sem_flg = 0;

csmb.sem_op = -semval;

printf(" Child: Unlocking semaphore...\n");

semop(smd,&csmb,1);

printf(" Child: Terminating child process...\n");

exit(0);

}

printf("Parent: Waiting for unlocking semaphore...\n");

psmb.sem_num = psmb.sem_flg = psmb.sem_op = 0;

semop(semid,&psmb,1);

printf("Parent: Semaphore is unlocked...\n");

printf("Parent: Waiting for SIGCHILD...\n");

waitpid(pid,NULL,0);

printf("Parent: Deleting semaphore...\n");

semctl(semid, 0, IPC_RMID);

exit(0);

}

Задачи:

  1.  Изучение основных программных средств управления процессами в ОС.
  2.  Написание комментариев к представленному программному коду.




1. Курсовая работа- Дидактические основы использования игрового метода на уроке физкультуры в 10 классах
2. мастерской мира
3. немецкой границы
4. Акра
5. Курсова робота є однією із практичних форм звіту студента під час набуття ним теоретичних знань з даної дисци
6. тематика Учит таблицу 4 стр
7. тематизированный курс ldquo;Экономическая социологияrdquo;
8. Карта опасности
9. Вариант 4 Основные направления в философии различающиеся по вопросу о признании
10. Анализ показателей прибыльности и безубыточной работы предприятия
11. ФШирокова ЦЕЛИ И ЗАДАЧИ популяризация лыжного спорта как одного из средств оздоровления населе
12. Реферат- Классификация моторных масел
13. . Основания прекращения права собственности 2
14. АгентСервис16 2
15. Согласовано
16. июле текущего года действующими страховыми организациями республики получено 5351 млрд
17. Руське слово і Діло
18. ТЕМА УПРАВЛЕНИЯ
19.  чания голоса при высказывании
20. Прага Автобусный экскурсионный тур по Европе с ж-д переездом до Бреста