1
0

OS lb-7 mark

This commit is contained in:
Sytnyk Yehor
2025-05-27 23:23:28 +03:00
parent a63c29ff99
commit 28ccfa72ac
6 changed files with 19 additions and 12 deletions

View File

@ -1,7 +1,7 @@
> [!NOTE] > [!NOTE]
> Викладач: Мельникова Р. В. > Викладач: Мельникова Р. В.
> >
> Оцінка: in progress > Оцінка: 92
> [!TIP] > [!TIP]
> Виконано для Linux в команді. > Виконано для Linux в команді.

View File

@ -123,7 +123,7 @@ int main(int argc, char *argv[]) {
fprintf(stderr, "Error: please provide time in UNIX timestamp format.\n"); fprintf(stderr, "Error: please provide time in UNIX timestamp format.\n");
return 1; return 1;
} }
time_t norm_time = mktime(&tm); time_t mtime = mktime(&tm);
char *paths[] = {CWD, NULL}; char *paths[] = {CWD, NULL};
FTS *fts = fts_open(paths, FTS_NOCHDIR, NULL); FTS *fts = fts_open(paths, FTS_NOCHDIR, NULL);
@ -134,10 +134,11 @@ int main(int argc, char *argv[]) {
char *buf = (char *)malloc(1024 * sizeof(char)); char *buf = (char *)malloc(1024 * sizeof(char));
for (FTSENT *ent = fts_read(fts); ent != NULL; ent = fts_read(fts)) { FTSENT *ent;
while ((ent = fts_read(fts)) != NULL) {
switch (ent->fts_info) { switch (ent->fts_info) {
case FTS_F: case FTS_F:
if (ent->fts_statp->st_mtime > norm_time) { if (ent->fts_statp->st_mtime > mtime) {
printf(RED); printf(RED);
printf("--------------------------------\n"); printf("--------------------------------\n");
@ -167,6 +168,12 @@ int main(int argc, char *argv[]) {
Encoding enc = get_encoding(buf, bytes_read); Encoding enc = get_encoding(buf, bytes_read);
printf("Lines length:"); printf("Lines length:");
if (enc != ENC_UTF8)
buf = to_utf8(buf, bytes_read, enc);
enc = ENC_UTF8;
size_t lines = 0; size_t lines = 0;
size_t line_len = 0; size_t line_len = 0;
for (size_t i = (enc == 2 || enc == 1) ? 2 : 0; i < bytes_read; i++) { for (size_t i = (enc == 2 || enc == 1) ? 2 : 0; i < bytes_read; i++) {
@ -204,9 +211,6 @@ int main(int argc, char *argv[]) {
} }
printf("\nTotal lines: %zu\n", lines); printf("\nTotal lines: %zu\n", lines);
if (enc != ENC_UTF8)
buf = to_utf8(buf, bytes_read, enc);
printf(NORMAL); printf(NORMAL);
printf("%s\n", buf); printf("%s\n", buf);

View File

@ -3,7 +3,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <time.h> #include <time.h>
#define MATRIX_SIZE 512 #define MATRIX_SIZE 12
typedef struct { typedef struct {
double **a; double **a;
@ -134,7 +134,7 @@ int main() {
double sequential_time = measure_time_seq(mul_seq, a, b, r_seq, MATRIX_SIZE); double sequential_time = measure_time_seq(mul_seq, a, b, r_seq, MATRIX_SIZE);
printf("time: %f secinds\n", sequential_time); printf("time: %f secinds\n", sequential_time);
int num_threads = 32; int num_threads = 8;
printf("\nperforming parrallel multiplication (%d threads)...\n", printf("\nperforming parrallel multiplication (%d threads)...\n",
num_threads); num_threads);
double parallel_time = double parallel_time =

View File

@ -4,12 +4,15 @@
#define NUM_THREADS 10 #define NUM_THREADS 10
volatile size_t count = 0;
void *thread_function(void *thread_id) { void *thread_function(void *thread_id) {
long tid = (long)thread_id; long tid = (long)thread_id;
printf("Begin\t%ld\n", tid); printf("Begin\t%ld\n", tid);
for (int i = 0; i < 100000; ++i) for (int i = 0; i < 100000; ++i)
; ;
printf("End\t%ld\n", tid); printf("End\t%ld\n", tid);
count++;
pthread_exit(NULL); pthread_exit(NULL);
} }
@ -23,7 +26,7 @@ int main() {
void *status; void *status;
pthread_join(threads[0], &status); pthread_join(threads[0], &status);
printf("Main thread completed execution\n"); printf("Main thread completed execution\nCount: %zu\n", count);
return 0; return 0;
} }

View File

@ -17,8 +17,8 @@
Завдання полягає у розробці трьох програм: Завдання полягає у розробці трьох програм:
+ програма 1 запускає текстовий редактор у заданій папці; + програма 1 запускає текстовий редактор у заданій папці;
+ програма 2 аналізує файли у заданій директорії, створені після вказаного часу, + програма 2 аналізує файли у заданій директорії, створені після вказаного часу,
визначаючи для них розмір, кількість рядків та довжину кожного рядка, з підтримкою визначаючи для них розмір, кількість рядків та довжину кожного рядка, з підтримкою
ASCII та UNICODE кодувань; ASCII та UNICODE кодувань;
+ програма 3 запускає спочатку програму 1, а потім програму 2, передаючи час запуску + програма 3 запускає спочатку програму 1, а потім програму 2, передаючи час запуску
першої програми як параметр для другої. першої програми як параметр для другої.