본문 바로가기

반응형

컴퓨터공학

(7)
운영체제(20) - 디스크와 디스크 스케줄 디스크의 구조 플래터 : 표면의 자성체와 자기를 이용해 0과 1의 데이터를 저장 Logical 블록 디스크의 외부에서 보는 디스크의 단위 정보 저장 공간들 주소를 가진 1차원 배열처럼 취급 정보를 전송하는 최소 단위 섹터 Logical block이 물리적인 디스크에 매핑된 위치 Sector 0은 최외곽 실린더의 첫 트랙에 있는 첫 번째 섹터이다 하나의 섹터에는 한 덩어리의 데이터가 저장되고 이들이 모여 플래터가 된다 트랙 : 플래터에서 회전축을 중심으로 데이터가 기록되는 동심원 실린더 : 트랙들의 집합 디스크 관리 Physical formatting ( Low - level formatting) 디스크를 컨트롤러가 읽고 쓸 수 있도록 섹터들로 나누는 과정 각 섹터는 header + 실제 data ( 보통..
운영체제(18) -디스크 자유 공간 관리 (Free - space Management) 디스크의 공간은 제한되어 있다. 삭제된 파일들이 차지하던 공간은 새로운 파일들을 위해 재사용되어야 한다. 이러한 자유공간을 관리하는 다양한 방법들이 있다. Bit map or bit vector 자유 공간 리스트는 흔히 비트 맵(bit map) 또는 비트 벡터(bit vector)로 구현 된다. 여기서 각 블록은 1비트로 표현된다. 블록이 자유로우면 그 비트는 1이 되고 만약 블록이 할당되어 있다면 그 비트는 0이 된다. 부가적인 공간을 필요로 함 연속적인 n개의 free block을 찾는데 효과적 Linked List 모든 free block들을 링크로 연결 (free list) 연속적인 가용공간을 찾는 것은 쉽지 않다 공간의 낭비가 없다 Grouping linked list 방법의 변형 n개의 fre..
운영체제(17) - 파일 할당 ( Allocation of File Data in Disk) 연속 할당 ( Contiguous Allocation) 연속된 블록에 파일을 할당하는 것 장점 Fast I / O, 한번의 seek/rotation으로 많은 바이트 transfer Direct access ( = random access) 가능 단점 외부 단편화 ( external fragmentation) File grow가 어려움, 중간중간 hole이 생김 연결 할당 (Linked Allocation) 연결 할당은 연속 할당의 문제점을 해결하기 위해 나온 방법으로, 연속적으로 할당하는 것이 아니라 링크드 리스트(linked list)와 같은 방식으로 파일을 할당 장점 : 외부 단편화 발생 안함 = 디스크 낭비가 없다 단점 직접 접근이 안됨 Reliability 문제 : 한 sector가 고장나 poi..
운영체제(12) - 프로세스의 메모리 할당 (연속 할당 방식) 사용자 프로세스 영역의 할당 방법 Contiguous allocation (연속 할당) : 각각의 프로세스가 메모리의 연속적인 공간에 적재되도록 Noncontiguous allocation (비연속적 할당) : 하나의 프로세스가 메모리의 여러 영역에 분산되어 올라갈 수 있음 Contiguous allocation 1. 고정 분할 방식 물리적 메모리를 주어진 개수만큼의 영구적인 분할로 미리 나누어두고 각 분할에 하나의 프로세스를 적재해 실행 시킬 수 있게함, 분할의 크기는 모두 동일하게 할 수도 있고, 서로 다르게 할 수도 있다 융통성이 없음 외부 단편화 : 프로그램의 크기보다 분할의 크기보다 작은경우에는 해당 분할이 비어 있는데도 불구하고 프로그램을 적재하지 못하기 때문에 발생하는 현상 내부 단편화 : ..
운영체제(8) -Semaphores ,Monitor Semaphores 정수 값을 가지며, 두 가지 연산인 P, V 연산에 의해서만 접근 가능한, 다중 프로그래밍 환경에서 공유 자원에 대한 접근을 제어하기 위한 동기화 도구 중 하나이다. Busy wait 방식 P(S) : while ( S
운영체제(5) - 프로세스의 생성과 관련 시스템콜 프로세스 생성 부모 프로세스가 자식프로세스를 생성, fork() 시스템콜을 통하여.. 프로세스의 트리 ( 계층 구조 ) 형성 프로세스는 자원을 필요로 함 운영체제로부터 받는다 부모와 공유 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 새로운 프로세스 생성시 수행 ( Execution) 상황 2가지 부모와 자식은 공존하며 수행되는 모델 자식이 종료( terminate)될 때까지 부모가 기다리는( wait ) 모델 새로운 프로세스 생성시 주소 공간( Address space) 상황 2가지 자식은 부모의공간을 복사함 자식은 그 공간에 새로운 프로그램을 올림 프로세스 종료 프로세스가 마지막 명령을 수행한 후 운영체제에게 이를 알려준다( exit ) - > 자..
백준 1781번(JAVA) 처음엔 이 문제를 그리디 알고리즘에 넣어야 하나, 우선순위 큐 카테고리로 넣어야 하나 고민했다. 근데 뭐 큰 의미없는 거 같아서 걍 그리디 알고리즘에 넣는다. 처음에는 그냥 단순히 마감시간이 적은것이 큰 우선순위를 갖도록, 그리고 마감시간이 같다면 컵라면 개수 많이주는걸 우선순위가 크게 우선순위큐에 넣었다. 예제는 잘 통과했는데 바로 틀렸다. 이유는 만약 문제가4개라 할떄 문제번호 1 2 3 4 데드라인 1 1 2 2 컵라면 개수 10 20 100 100 이런 경우에서 자연스럽게 데드라인 1중 컵라면개수가 더 많은 20을 택한다. 그리고 흘러간시간을++해준다. 그 후, 데드라인 2중에서 하나를 택해서 100을 골라서 총 컵라면개수는 120개가 된다. 하지만 사실 처음에 3번을 풀고 그 다음에 4번을 풀면..

반응형