본문 바로가기

Developing Note/OS4

[운영체제]파일시스템 할당 방법 Block단위로 디스크가 돌아가기 때문에 파일에 Block을 할당할 때 free block이 생긴다.Block 안의 크기를 다 못 채우고 파일이 저장되는 것 (그러면 내부단편화 현상이 생김) 이 것을 할당하는 방법에는 연속 할당, 연결 할당, 색인 할당이 존재한다. 연속 할당 : 각 파일에 대해 디스크 상의 연속된 블록을 할당하는 방법 즉, HDD에 Block들이 나열되어 있는데 여기에 연속된 순서대로 파일을 저장한다.이렇게 하면 Read할 때 이동경로를 최대한 줄일 수 있다. (빠른 I/O를 가짐) 장점 :동영상이나, 음악, VOD 같이 크기가 큰데 실시간 자료에 적합하다. 단점: 특정 파일을 삭제하면 중간에 Hole이 생성한다. 즉, 컴퓨터 시스템이 외부단편화가 생겼다고 생각이 될 수 도 있다. 연속.. 2018. 6. 16.
[운영체제]메모리 단편화 (Fragmentation) 메모리 단편화 (Fragmentation) RAM에서 메모리의 공간이 작은 조각으로 나뉘어져 사용 가능한 메모리가 충분히 존재하지만 할당이 불가능한 상태 내부 단편화 (Internal Fragmentation)-> Segmentation (Variable size) 메모리를 할당할 때 Process가 필요한 양보다 더 큰 메모리가 할당되어서 메모리 공간이 낭비되는 상황 (어떤 프로그램을 OS가 4kb를 할당해주었는데, 사실상 1kb만 사용하고 있을때 3kb만큼 내부단편화 발생) 외부 단편화 (External Fragmentation)-> Paging (Fixed size) 메모리가 할당되고 해제되는 작업이 반복될 때 작은 메모리 중간중간에 사용하지 않는 메모리가 많이 존재해서 총 메모리 공간은 충분하지만.. 2018. 6. 8.
[Nachos]#5. Priority Scheduling Nachos 학교과제에서 이번 부분이 마지막이다.사실 Nachos 프로젝트를 하면서 OS는 내 머리의 능력 밖이다라고 뼈져리게 느꼈다.요구사항TASK V (35%, 125 lines) priority schedulingpriority scheduling은 real-time system에서의 핵심이다.이 Scheduling을 사용하기 위해서 Nachos 폴더 proj1 폴더안에 있는 Nachos.conf 부분에서ThreadedKernel.scheduler = nachos.threads.PriorityScheduler변경해주어야한다.- getPriority(), getEffectivePriorty(), setPriority()이건 선택사항으로- increasePrioirty(), decreasePriorty.. 2018. 5. 24.
[MIPS]초기 변수 받기 (argc, argv, envp) [MIPS]초기 변수 받기 (argc, argv, envp) MIPS를 처음 실행하면 입력하지 않은 명령어인데도 기본적으로 입력이 되는 명령어들이 있다.123456789lw $a0, 0($sp) # argcaddiu $a1, $sp, 4 #argvaddiu $a2, $a1, 4 #envpsll $v0, $a0, 2addu $a2, $a2, $v0jal mainnopli $v0, 10syscallcs 리눅스 상에서 파일을 실행시킬때 받는 값들이 있다.c언어 혹은 java도 마찬가지로123int main(argc, argv){ return 0;}cs 123public static void main(String[] args){ }Colored by Color Scriptercs1번 $a0 argument re.. 2018. 4. 9.