[크래프톤 정글 3기] 12/7(목) TIL 🤒

ClassBinu·2023년 12월 7일
0

크래프톤 정글 3기 TIL

목록 보기
54/120

09:30 착석
오늘도 방에서 격리


알고리즘 복습

버블 정렬

  • (최적화) 플래그를 두고 만약 한번도 교환이 이루어지지 않았다면 정렬이 완료된 것이므로 다음 회사 정렬을 진행하지 않고 종료
// 기본 코드 - 여기서 최적화 필요
function bubbleSort(arr) {
  for (let i = 0; i < arr.length; i++) {
    for (let j = 0; j < arr.length; j++) {
      if (arr[j] > arr[j + 1]) {
        let temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
      }
    }
  }
  return arr;
}

// 이미 정렬된 뒷 부분은 정렬하지 않기
function bubbleSort(arr) {
  for (let i = arr.length; i > 0; i--) {
    for (let j = 0; j < i - 1; j++) {
      if (arr[j] > arr[j + 1]) {
        let temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
      }
    }
  }
  return arr;
}

// 플래그 넣기
function bubbleSort(arr) {
  let noSwaps;
  for (let i = arr.length; i > 0; i--) {
    noSwaps = true;
    for (let j = 0; j < i - 1; j++) {
      if (arr[j] > arr[j + 1]) {
        let temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
        noSwaps = false;
      }
    }
    if (noSwaps) break;
  }
  return arr;
}

Pintos


운영체제


메모리 가상화

C에서 출력하는 주소는 가상 주소이다.
사용자 레벨 프로그램에서 볼 수 있는 주소는 모두 가상 주소이다.
물리 메모리 주소를 알 수 있는 것은 오직 운영체제 뿐!


메모리

스택

할당과 반환이 컴파일러에 의해 암묵적으로 이루어 짐
자동 메모리라고 부름

할당과 반환이 명시적으로 이루어 짐
malloc()은 void 타입의 포인터만 반환한다.
해당 주소 공간에 어떤 타입의 자료를 저장할지는 타입 캐스팅을 통해 지정해 줘야 함.


주소 변환

하드웨어 기반 주소 변환 = 주소 변환
: 가상 주소를 물리 주소로 변환

물리 주소 = 가상 주소 + 베이스
바운드(한계)값을 확인해서 보호를 지원
가상 주소가 음수이거나 바운드를 벗어나면 폴트가 발생

베이스와 바운드는 물리적인 레지스터
두 레지스터는 MMU를 통해 관리될 수 있음.

0개의 댓글