
메모리 공간과 주소 바인딩32비트 컴퓨터의 메모리 크기는 4GB우리가 흔히 사용하는 컴퓨터는 32비트 또는 64비트 주소 체계를 사용하고 있다. 32비트 주소 체계를 사용한다는 의미는 메모리의 고유 위치를 나타내기 위해 위해 32비트(4바이트)가 사용되며, 총 2³²개의 고유한 주소를 가질 수 있다는 의미다. 또한, 32비트 컴퓨터의 CPU가 한 번에 처리할 수 있는 데이터 크기이며, 레지스터의 크기이기도 하다.컴퓨터는 바이트 단위로 메모리 주소를 부여하기 때문에 32비트 주소 체계를 사용하게 된다면 최대 약 4GB의 메모리 크기를 가지게 된다. 여기서 직접 비트를 바이트로 환산하는 계산을 해보고 왜 4GB인 지 헷갈릴 수 있다.2³² bit = 4,294,967,296 bit = 536,870,912 ..

CPU 스케줄링의 목적일반적으로 사용자 프로그램이 수행되는 과정은 CPU 작업과 I/O 작업의 반복으로 구성된다. CPU 작업은 레지스터 간의 연산 및 메모리 접근 등으로 이루어지기 때문에 빠르게 수행될 수 있다. 반면 I/O 작업의 경우, CPU의 제어권이 운영체제 커널로 넘어갈 뿐 아니라 상대적으로 매우 느린 입출력 장치의 접근이 필요하게 된다. 전자를 CPU 버스트라고 하고, 후자를 I/O 버스트라고 한다.CPU 버스트(burst) : 사용자 프로그램이 직접 CPU를 가지고 빠른 명령을 수행하는 일련의 단계I/O 버스트(burst) : 커널에 의해 입출력 작업을 진행하는 비교적 느린 단계각 프로그램마다 CPU 버스트와 I/O 버스트가 차지하는 비율이 균일하지는 않다. CPU 버스트가 길게 나타나는 ..

본 내용은 학교 강의+반효경 교수님 강의를 통해 개인적으로 공부한 내용입니다. 책은 쉽게 배우는 운영체제(한빛 아카데미)를 참고했습니다. 조언은 언제든지 감사합니다 ! Contiguous allocation(연속 할당) 각각의 프로세스가 메모리의 연속적인 공간에 적재 (통채로 올라감) 주소 변환이 매우 간단하지만 단편화 문제가 많이 발생 고정분할(Fixed partition) 방식 물리적 메모리를 미리 몇 개의 partition으로 나눔 분할의 크기가 모두 동일할 수도 있고, 아닐 수도 있다. 분할 당 하나의 프로그램을 적재시키며 이로인해 단편화가 발생 External fragmentation (외부 조각 = 외부 단편화) 프로그램 크기보다 분할의 크기가 작아 현재 대기중인 프로그램이 올라갈 수 없는 작..

본 내용은 학교 강의+반효경 교수님 강의를 통해 개인적으로 공부한 내용입니다. 책은 쉽게 배우는 운영체제(한빛 아카데미)를 참고했습니다. 조언은 언제든지 감사합니다 ! Logical address vs Physical address Logical address ≒ relative address (상대 주소), virtual address 프로세스마다 독립적으로 가지는 (가상의)공간으로 각 프로세스마다 0번지부터 시작 사용자 입장에서 바라보는 주소 공간이다. 실제 CPU는 Logical address를 보며 작업함 Physical address ≒ absolute address (절대 주소) 메모리에 올라가는 실제 주소 공간 메모리 관리자의 입장 Address Binding (주소 변환) 메모리에 접근할 ..
본 내용은 학교 강의를 통해 개인적으로 공부한 내용입니다. 책은 쉽게 배우는 운영체제(한빛아카데미)를 참고했습니다. 조언은 언제든지 감사합니다 ! 스레드란 프로세스의 코드에 정의된 절차에 따라 CPU에 작업을 요청하는 실행 단위, 흐름의 단위다.그렇다면 프로세스와 스레드의 차이는 무엇일까?운영체제 입장에서의 작업 단위는 프로세스이고 CPU 입장에서의 작업 단위는 스레드다. 작업 관리자를 열어 성능 탭을 눌러보면 CPU의 처리 현황을 알 수 있는데, 프로세스는 161개인 반면 스레드는 2228개나 된다.즉, 하나의 프로세스에 여러 개의 스레드 흐름이 진행되고 있다는 것이다. 멀티태스크와 멀티스레드 멀티태스크는 CPU가 시분할 시스템으로 작업을 처리하는 것으로, 이때 전달받은 프로세스는 하나의 스레드로 이루..
본 내용은 학교 강의를 통해 개인적으로 공부한 내용입니다. 책은 쉽게 배우는 운영체제(한빛아카데미)를 참고했습니다. 조언은 언제든지 감사합니다 ! 프로세스 메모리 구조 코드 영역프로그램의 코드 본문이 저장되는 영역으로 읽기 전용(수정 불가)이다.데이터 영역프로그램이 사용하는 변수나 파일 등의 각종 데이터를 저장하는 곳이다. 변수 중에서도 전역 변수가 할당되는 영역이다.힙 영역동적으로 할당되는 변수 영역이다. c언어의 기준으로 malloc() 함수나 calloc() 함수에 의해 생성된 변수들이 이 곳에 할당된다. 동적 할당은 프로세스의 메모리 관리를 효율적으로 하기 위한 필수 요소다.스택 영역함수 호출이 발생할 경우 함수 호출의 전반적인 처리와 리턴 값을 가지고 있다. 그리고 이러한 함수에서 사용되는 지역..
본 내용은 학교 강의를 통해 개인적으로 공부한 내용입니다. 책은 쉽게 배우는 운영체제(한빛아카데미)를 참고했습니다. 조언은 언제든지 감사합니다 ! 프로세스가 무엇일까 ? 프로세스란 운영체제 입장에서 하나의 작업 단위다. 그럼 프로그램은 무엇일까? 프로그램과 프로세스의 차이프로그램은 하드디스크 같은 보조기억장치에 저장된 절차(코드+데이터)다. 아직 실행되지 않은 정적인 상태이다. 폰 노이만 구조의 컴퓨터에서 프로그램을 실행하기 위해서는 메모리상에 올라와 있어야 한다. 프로그램을 메인메모리 위에 올려 실행한 것이 프로세스다. 즉 실행중인 프로그램이 프로세스다. 평소에 많이 열어본 적이 있는 작업 관리자를 보면 현재 실행중인 프로세스 목록들이 표시된다. 당장 우리 눈에 보이는 프로세스는 위의 5개인 것 같지만..
본 내용은 학교 강의를 통해 개인적으로 공부한 내용입니다. 책은 쉽게 배우는 운영체제(한빛아카데미)를 참고했습니다. 조언은 언제든지 감사합니다 ! About to Kernel커널은 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적은 기능을 모아놓은 것이다. 위의 그림에서 보이듯이 운영체제는 크게 인터페이스 + 커널의 구조이다. 운영체제의 핵심적인 기능들이 커널에 모여있다면, 인터페이스(GUI)는 이러한 커널을 사용자가 보다 편리하게 사용할 수 있게 해준다. 단 사용자가 사용하는 인터페이스는 다시 시스템 호출이라는 인터페이스를 통해 커널에 접근해야 한다. 다시말해 사용자가 커널에 접근할 수 있는 유일한 수단이 시스템 호출이다.시스템 호출은 커널이 자신을 보호하기 위한 수단으로 사용자나 ..
- Total
- Today
- Yesterday
- 스프링
- Computer_Networking_A_Top-Down_Approach
- 선형 회귀
- 스프링 테스트
- git
- Python Cookbook
- 프로그래머스
- Thymeleaf
- 운영체제 반효경
- 김영환
- 스프링 컨테이너
- 생활코딩 javascript
- Spring Data JPA
- Do it! 정직하게 코딩하며 배우는 딥러닝 입문
- jsp
- JPA
- 쉘 코드
- 패킷 스위칭
- 쉽게 배우는 운영체제
- 지옥에서 온 git
- Gradle
- 파이썬 for Beginner 연습문제
- Spring Boot
- git merge
- 스프링 mvc
- 파이썬 for Beginner 솔루션
- fetch join
- 방명록 프로젝트
- Spring
- git branch
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |