From 56e46ac1c16ad46fd3d49b87e56b2e71aca33d1c Mon Sep 17 00:00:00 2001 From: miinjung <laura126@ajou.ac.kr> Date: Fri, 15 Jun 2018 21:46:18 +0900 Subject: [PATCH] finish --- alloc.c | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ alloc.h | 16 +++++- input.txt | 7 +++ main | Bin 0 -> 17824 bytes main.c | 46 +++++++++++++++- 5 files changed, 222 insertions(+), 3 deletions(-) create mode 100644 input.txt create mode 100755 main diff --git a/alloc.c b/alloc.c index 931b9fd..3c60061 100644 --- a/alloc.c +++ b/alloc.c @@ -1 +1,157 @@ #include "alloc.h" + +#include <stdio.h> +#include <stdint.h> +#include <string.h> + +void *m_malloc(uint32_t size){ + meta* temp; + if(size%4 != 0) + size += (4-size%4); + + if(head == NULL){ + temp = sbrk(size); + temp -> next_memory = NULL; + temp -> prev_memory = NULL; + temp -> size = size; + temp -> free = 0; + strcpy(temp -> comment,tmp_comment); + temp -> fit= fit; + + head = temp; + first = temp; + } + else{ + meta* prev = NULL; + meta* next = NULL; + meta* tmp_head = head; + while(1){ + if(tmp_head->next_memory == NULL){ + if(prev == NULL){ + prev = tmp_head; + } + break; + } + else if(tmp_head -> next_memory -> free == 1 && tmp_head -> next_memory -> size > size){ + if( prev == NULL){ + prev = tmp_head; + if(fit == "F") + break; + } + else{ + if(fit == "B") + prev = (prev -> size < tmp_head -> next_memory -> size) ? prev : tmp_head; + else if(fit == "W") + prev = (prev -> size > tmp_head -> next_memory -> size) ? prev : tmp_head; + } + } + tmp_head = tmp_head-> next_memory; + } + tmp_head = prev -> next_memory; + next = tmp_head -> next_memory; + if(tmp_head -> size == size){ + prev -> next_memory -> free = 0; + } + else{ + temp -> prev_memory = prev; + temp -> next_memory = tmp_head; + temp -> size = size; + temp -> free = 0; + strcpy(temp -> comment,tmp_comment); + temp -> fit = fit; + + tmp_head -> size -= size; + tmp_head -> prev_memory = temp; + + prev -> next_memory = temp; + } + } +} + +void m_realoc(void* p,uint32_t size){ + if(size%4 != 0) + size += (4-size%4); + + int index = *(int *)p; + int count = 0; + meta* temp = head; + + while(1){ + if(count == index) + break; + + temp = temp -> next_memory; + if(temp -> free == 0) + count++; + } + if(temp -> next_memory == NULL){ + temp -> size = size; + } + else if(size < (temp -> next_memory -> size) + temp -> size){ + temp -> next_memory -> size -= (size - temp->size); + temp -> size = size; + } + else if(size = (temp -> next_memory -> size) + temp -> size){ + temp -> size = size; + temp -> next_memory = temp -> next_memory -> next_memory; + } + else + m_malloc(size); +} + +void m_free(void *ptr){ + int index = *(int *)ptr; + int count = 0; + meta* temp = head; + int size = head -> size; + int break_point = 0; + + while(1){ + if(count == index) + break; + + temp = temp -> next_memory; + if(temp -> free == 0) + count++; + } + while(1){ + if(temp -> next_memory == NULL){ + if(temp -> next_memory -> free == 1){ + size += temp -> next_memory -> size; + temp -> next_memory = temp -> next_memory -> next_memory; + } + else + break; + } + else + break; + } + while(1){ + if(temp -> prev_memory == NULL){ + if(temp -> prev_memory -> free == 1){ + size += temp -> prev_memory -> size; + temp -> prev_memory = temp -> prev_memory -> prev_memory; + } + else + break; + } + else + break; + } + temp -> free = 1; + strcpy(temp -> comment," "); + if( index == 0) + head == temp -> next_memory; +} + + +void read(){ + meta* temp = first; + + while(1){ + if(temp -> next_memory == NULL) + break; + + printf("%d %d %s\n", temp -> free, temp -> size, temp -> comment); + } +} diff --git a/alloc.h b/alloc.h index 3245f55..60f9bd5 100644 --- a/alloc.h +++ b/alloc.h @@ -1,8 +1,22 @@ #ifndef _ALLOC_H_ #define _ALLOC_H_ -typedef struct meta_struct { +#include <stdint.h> +typedef struct meta_struct { + struct meta_struct* prev_memory; + struct meta_struct* next_memory; + uint32_t free; + uint32_t size; + char *comment; + char fit; } meta; +char fit; +char *tmp_comment; + +meta* head; +meta* first; + + #endif diff --git a/input.txt b/input.txt new file mode 100644 index 0000000..92308ca --- /dev/null +++ b/input.txt @@ -0,0 +1,7 @@ +3 f +S THink like a man of action and act like man of thought. +s Courage is very important. LIke a muscle, it is strngthened by use. +s Life is the art if drqwing sufficient conclusions from insufficientpremises. +2 F +f 0 +r 1 diff --git a/main b/main new file mode 100755 index 0000000000000000000000000000000000000000..90eb02129370e40d37a4f7e2bd1d6f380ec0e167 GIT binary patch literal 17824 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 literal 0 HcmV?d00001 diff --git a/main.c b/main.c index b5fba06..f526ffe 100644 --- a/main.c +++ b/main.c @@ -1,6 +1,48 @@ #include "alloc.h" -int main() -{ +#include <string.h> +#include <stdio.h> +#include <stdlib.h> + +int main(int argc, char *argv[]){ + uint32_t size_index,size_data; + char type_fit, type_data; + char temp[256]; + int num, index; + FILE *fp = fopen("input.txt","rb"); + + if(fp == NULL){ + perror("Can't open the file"); + exit(1); + } + else{ + while(1){ + if(EOF == fscanf(fp,"%d %c",size_index,type_fit)) + break; + + for(int i = 0; i < size_index; i++){ + fscanf(fp,"%c",type_data); + if(type_data == "f"){ + fscanf(fp,"%d",index); + m_free(index); + } + else if(type_data == "r"){ + fscanf(fp,"%d %d",index,size_data); + m_realoc(index,size_data); + } + else if(type_data == "s"){ + fscanf(fp,"%s",temp); + if(temp != NULL){ + strcpy(tmp_comment,temp); + size_data = strlen(tmp_comment); + } + m_malloc(size_data); + } + } + read(); + } + } + fclose(fp); + return 0; } -- GitLab