Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩

분류 전체보기260

16. 파일 시스템 🖥️ 파일 시스템 🖥️ 파티셔닝과 포매팅 완전 새 하드 디스크, SSD는 파티셔닝 포매팅 전에는 사용할 수 없다. 파티셔닝 저장 장치의 논리적인 영역을 구획하는 작업 포매팅(논리적 포매팅) 파일 시스템을 설정 어떤 방식으로 파일을 관리할 지 결정, 새로운 데이터를 쓸 준비 작업 파일 시스템에는 여러 종류가 있고, 파티션마다 다른 파일 시스템을 설정할 수도 있다. 포매팅까지 완료하여 파일 시스템을 설정했다면, 파일과 디렉터리 생성이 가능해진다. 파일 할당 방법 포매팅이 끝난 하드 디스크에 파일을 저장하기. 운영체제는 파일/디렉터리를 '블록 단위'로 읽고 쓴다. 즉 하나의 파일이 보조기억장치에 저장될 때에는 여러 블록에 걸쳐 저장된다는 말. * 하드 디스크의 가장 작은 저장 단위는 섹터이지만, 보통 블록 단.. 2023. 9. 15.
[python3] 정수를 나선형으로 배치하기 (프로그래머스) 문제만 읽으면 아 그렇구나~ 했는데 막상 코드로 옮기려니 머리가 아팠다. 2차원 배열에 아직 익숙하지 않아서 row col 이러다가 으아아아ㅏㅏ 하고 말았던.. 관련 풀이를 많이 찾아봤는데 여전히 너무 복잡한 풀이 방식이었고 가장 괜찮은 풀이법을 찾아서 정리해보려고 한다. 입출력 예시를 보면 행, 열을 표로 그려놨는데, 여기서 행을 i, 열을 j라고 하자. 첫번째 칸에는 1이 들어간다. 이 숫자는 n *n의 값에 도달할 때 까지 계속 1씩 증가한다. -> cnt라는 변수로 만들자. cnt의 증가를 따라가보면 우측으로 가다가, 마지막 열에 닿았을 때 아래로 내려가고, 마지막 행에 닿았을 때 왼쪽으로 이동하고 맨 처음 열에 닿으면 위로 올라간다. ➡️ ⬇️ ⬅️ ⬆️의 순서인 것이다. (이동의 순서가 있고,.. 2023. 9. 14.
15. 파일과 디렉터리 🖥️ 파일과 디렉터리 🖥️ 파일 시스템(file system) 파일과 디렉터리를 관리하는 운영체제 내의 '프로그램' 파일 - 보조기억장치에 저장된 관련 정보의 집합 - 의미 있고 관련 있는 정보를 모은 '논리적 단위' 파일에는 어떤 정보가 있을까? 파일을 실행하기 위한 정보 + 부가 정보(속성, 메타 데이터) 파일을 다루는 모든 작업은 운영체제에 의해 이루어진다. 즉 파일 연산을 위한 시스템 호출이 필요한 것. 생성, 삭제, 열기, 닫기, 읽기, 쓰기 등.. 디렉터리 (윈도우에서는 폴더(folder)) 절대 경로 루트 디렉터리에서 자기 자신까지 이르는 고유한 경로 ex. /home/toughie/sample.swift 상대 경로 현재 디렉터리에서 자기 자신까지 이르는 경로 ex. 현재 디렉터리 경로가 /.. 2023. 9. 13.
14. 페이지 교체와 프레임 할당 🖥️ 운영체제 🖥️ 페이징을 통해서 물리 메모리보다 큰 프로세스를 실행할 수 있지만, 그래도 물리 메모리의 크기는 한정되어 있다. 따라서 기존에 적재된 불필요한 페이지를 선별해서 보조기억장치로 내보내고(페이지 아웃) 프로세스들에게 적절한 수의 프레임을 할당해야 한다. 요구 페이징 (Demand Paging) 처음부터 모든 페이지를 적재하는 것이 아니라, 필요한 페이지만을(요구되는 페이지만) 메모리에 적재하는 기법. (순수 요구 페이징_일단 실행부터 해보기_페이지 폴트가 계속 발생) 1. CPU가 특정 페이지에 접근하는 명령어를 실행한다. 2. 해당 페이지가 현재 메모리에 있을 경우(유효 비트가 1일 경우) CPU는 페이지가 적재된 프레임에 접근한다. 3. 해당 페이지가 현재 메모리에 없을 경우(유효 비트.. 2023. 9. 10.
13. 쓰기 시 복사, 계층적 페이징 🖥️ 쓰기 시 복사, 계층적 페이징 🖥️ Copy on Write 필요한 부분만(ex 쓰기 작업) 메모리에 적재하는 것! 계층적 페이징(다단계 페이지 테이블 프로세스 테이블의 크기는 생각보다 작지 않다.(프로세스가 커지면 테이블의 크기도 커짐) 프로세스를 이루는 모든 페이지 테이블 엔트리를 메모리에 두는 것은 큰 낭비이다. 프로세스를 이루는 모든 페이지 테이블 엔트리를 항상 메모리에 유지하지 않을 방법. '페이지 테이블을 페이징해서 여러 단계의 페이지를 두는 방식.' - 모든 페이지 테이블이 항상 메모리에 있을 필요가 없어짐. CPU와 가장 가까이 위치한 페이지 테이블(Outer 페이지 테이블)은 항상 메모리에 유지됨. 계층이 많아지면 참조 횟수가 늘어나기 때문에 마냥 계층이 많다고 좋은 것은 아니다. .. 2023. 9. 4.
12. 페이징 가상 메모리 관리 🖥️ 페이징 가상 메모리 관리 🖥️ 가상메모리는 간단하게 실행하고자 하는 프로그램을 일부만 메모리에 적재해서 실제 물리 메모리보다 큰 프로세스를 실행할 수 있게 하는 기술이다. - 페이징, 세그멘테이션 만약 프로세스의 크기가 모두 동일하다면, 외부 단편화는 발생하지 않았을 것. 그럼 프로세스의 크기를 모두 동일하게 만들어 본다면? 페이징(paging) - 프로세스의 논리 주소 공간_(프로세스마다 0부터 N번지)을 페이지(page)라는 일정 단위로 자름. - 메모리의 물리 주소 공간을 프레임(frame)이라는 페이지와 동일한 일정한 단위로 자름. - 페이지를 프레임에 할당하는 가상 메모리 관리 기법 -> 스와핑이 가능하다? 특정 프로세스를 실행하기 위해 꼭 모든 페이지가 메모리에 있어야 하는 것은 아님을 .. 2023. 9. 3.