본문 바로가기

운영체제

FileSystem이란?(2) * 본 내용은 운영체제를 공부하며 추후 복습하기 위해 포스팅하는 게시물입니다. 디스크로부터 데이터를 read/write 하기위한 시간은 3가지 단계로 분류할 수 있다. 1) Seek Time - Access Time의 대부분을 차지한다. - 디스크의 read/write 헤드가 찾고자하는 데이터가 존재하는 실린더를 찾아가는 과정을 의미한다. 2) Rotate Time - 디스크의 read/write 헤드가 실린더를 찾은 다음의 과정으로 트랙의 섹터를 찾아가는 과정을 의미한다. 3) Transfer Time - 디스크의 헤드가 섹터를 읽은 다음 디스크로부터 메모리로 보내는 시간을 의미한다. 디스크를 접근하는 시간의 대부분은 디스크의 read/write 헤드가 실린더(트랜)을 찾아가는 단계에서 소요된다. 대안.. 더보기
File System이란? * 본 내용은 운영체제를 공부하며 추후 복습하기 위해 포스팅하는 게시물입니다. File System이란? File을 저장하고 관리하고 보호하는 시스템을 의미 File 이름이 있는 연관된 데이터들의 집합을 의미 운영체제는 다양한 장치를 File이라는 논리적 단위로 보여줌 create, delete, read, write, open, close 연산이 존재하며 open을 해야만 read, write가 가능 Directory Directory 하부의 있는 파일들의 일부 metadata를 내용으로 가지고 있는 특별한 파일을 의미 Partition(=Logical Disk) 하나의 물리적 디스크를 여러 개의 논리적 디스크로 분할하는게 일반적ex) C 드라이브, D 드라이브 여러 개의 물리적 디스크를 하나의 논리적.. 더보기
Virtual Memory에 대해서 알아보자 * 본 내용은 운영체제를 공부하며 추후 복습하기 위해 포스팅하는 게시물입니다. 현대의 운영체제는 메모리와 프로세스를 Page 단위로 분할하는 Paging 기법을 사용한다. 이해가지 않는다면 이전 포스팅 참고 → javairus.tistory.com/53?category=973522 Memory Management에 관해서 알아보자 * 본 내용은 운영체제를 공부하며 추후 복습하기 위해 포스팅하는 게시물입니다. 프로그램을 실행할 때 프로그래머가 개발 시 사용했던 심볼릭 주소(참조변수)를 논리적 주소 or 물리적 주소 javairus.tistory.com CPU가 명령어를 실행할 때 필요한 Page만 메모리에 할당하는 방식을 Demand Page라 한다. 즉, 프로그램이 실행될 때 프로그램의 모든 Page를 .. 더보기
Memory Management에 관해서 알아보자 * 본 내용은 운영체제를 공부하며 추후 복습하기 위해 포스팅하는 게시물입니다. 프로그램을 실행할 때 프로그래머가 개발 시 사용했던 심볼릭 주소(참조변수)를 논리적 주소 or 물리적 주소로 바인딩한다. 바인딩 방법은 시점에 따라 구분할 수 있다. 1. 컴파일 타임 바인딩 - 소스코드를 컴파일하는 시점에 물리적 주소가 결정되기 때문에 프로그램을 실행하기 위해서는 메모리에 물리적 주소가 비어있어야 한다. - 초창기 메모리가 부족했을 때 많이 사용하던 방법이다. - 물리적 주소를 변경하기 위해서는 다시 컴파일 해야한다. 2. 로드 타임 바인딩 - 프로그램이 실행되는 시점에 물리적 주소가 부여된다. - 프로그램 내 논리적 주소는 변경되지 않음 3. 런타임 바인딩 - 프로그램이 실행되는 중 물리적 주소가 변경된다... 더보기
DeadLock에 관해서 알아보자 * 본 내용은 운영체제를 공부하며 추후 복습하기 위해 포스팅하는 게시물입니다. DeadLock(교착상태) DeadLock을 설명할 때 교차로에서 차들이 서로에게 막혀 움직이지 못하는 그림이 자주 참고된다. 그렇다면 운영체제에서 DeadLock이란 무엇을 의미할까? 위키백과의 정의를 인용해보면 두개 이상의 작업이 상대방의 작업이 완료되기를 기다리며 자신의 작업을 수행하지 못하는 상태를 의미한다. 이것만 보면 DeadLock이 무엇인지 감이 잡히지 않을것이다. 운영체제에서 DeadLock이 무엇인지, 그리고 어떻게 발생하는지 자세히 알아보자 DeadLock 발생조건 1) Mutual Exclusion : 자원을 사용할 때 하나의 프로세스만 사용되는 특성을 의미 2) Hold And Wait : 프로세스가 자.. 더보기
Race Condition(경쟁 상태)이 발생하는 사례란? * 본 내용은 운영체제를 공부하며 추후 복습하기 위해 포스팅하는 게시물입니다. Race Condition(경쟁 상태) - 특정 변수의 값을 증가시키거나 감소시키는 작업은 여러 개의 명령어로 구성되어 있어, 서로 다른 프로세스가 동일한 변수를 동시에 증가시키거나 감소 시키는 작업 시 순서가 예상과 다르게 작동하면 결과값에 영향을 줄 수 있는 상태를 의미 * 프로그램적으로 해결할 수 있는 조건 1) Mutual Exclusion - 프로세스가 Critical Section 부분을 수행 중일 때 다른 프로세스가 Critical Section에 진입하면 안됨 2) Progress - Critical Section을 수행하는 부분이 없다면 프로세스를 진입할 수 있게 해줘야함 3) Bounded Waiting - .. 더보기
CPU 스케줄링이란? * 본 내용은 운영체제를 공부하며 추후 복습하기 위해 포스팅하는 게시물입니다. 운영체제는 메모리에 할당된 여러 프로세스에게 어떻게 CPU를 할당할지 결정해야한다. 이를 위해서 다양한 CPU 스케줄링은 사용하며 이번 게시물은 CPU 스케줄링이 어떤 것이 존재하는지 알아보며 이를 설명하기 위한 용어들을 알아보자 장기 스케줄링 - 프로그램을 실행할 때 프로그램을 메모리에 할당할지 결정하는 방법 - 현재 운영체제에서 사용되지 않는다 중기 스케줄링 - 메모리가 부족하여 디스크의 일부를 메모리처럼 사용할 때 어떤 프로세스를 메모리에서 제거할지 결정하는 방법 단기 스케줄링 - CPU를 Ready Queue에 존재하는 프로세스에게 어떻게 할당할지 결정하는 방법 CPU 스케줄링 - 단기 스케줄링을 의미 디스패처 - CP.. 더보기
프로세스에 관하여 알아보자 * 본 내용은 운영체제를 공부하며 추후 복습하기 위해 포스팅하는 게시물입니다. 프로세스란?? - 메모리를 할당받아 실행되고 있는 프로그램을 의미 - 프로그램의 모든 영역이 메모리에 올라가지 않음(Page 단위로 분할하여 필요한 부분만 메모리에 할당) 프로세스는 메모리를 할당받을 때 프로그램 내 주소를 논리적 주소로 변환한다. 즉 프로그램의 논리저 시작주소는 0이며CPU가 프로세스를 수행하기 위한 메모리 접근 시 이러한 논리적 주소를 레지스터와 하드웨어를 이용하여 메모리의 물리적 주소로 변환하여 접근한다.(가상 메모리 챕터에서 자세히 다룰 예정) 프로그램을 실행하면 다음과 같은 상태들을 나타낸다. New : 프로세스를 생성중인 상태 Ready : Ready Queue에 존재하여 CPU를 할당받기를 기다리고.. 더보기