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;
}
C에서 출력하는 주소는 가상 주소이다.
사용자 레벨 프로그램에서 볼 수 있는 주소는 모두 가상 주소이다.
물리 메모리 주소를 알 수 있는 것은 오직 운영체제 뿐!
할당과 반환이 컴파일러에 의해 암묵적으로 이루어 짐
자동 메모리라고 부름
할당과 반환이 명시적으로 이루어 짐
malloc()은 void 타입의 포인터만 반환한다.
해당 주소 공간에 어떤 타입의 자료를 저장할지는 타입 캐스팅을 통해 지정해 줘야 함.
하드웨어 기반 주소 변환 = 주소 변환
: 가상 주소를 물리 주소로 변환
물리 주소 = 가상 주소 + 베이스
바운드(한계)값을 확인해서 보호를 지원
가상 주소가 음수이거나 바운드를 벗어나면 폴트가 발생
베이스와 바운드는 물리적인 레지스터
두 레지스터는 MMU를 통해 관리될 수 있음.