반응형

오블완 21

[OSTEP][영속성] CH35 대화 + CH36 I/O 장치

CH35 영속성에 대한 대화 영속성 Persistence 의 사전적인 의미는 "곤경과 반대에도 불구하고 굳게 또는 완고하게 행동 방침을 유지"한다는 것이다 컴퓨터가 멈추고 디스크가 고장나고 전원이 꺼지더라도 정보를 그대로 유지시키는 것은 엄청나게 많은 노력이 필요하다  CH36 I/O 입출력 장치 I/O 는 컴퓨터 시스템에서 상당히 중요한 부분이다, 컴퓨터 시스템을 유용하게 쓰려면 입력과 출력이 모두 필요하다 핵심 질문 - 어떻게 I/O 를 시스템에 통합할까 시스템에 I/O 를 어떻게 통합해야 하는가? 일반적인 방법은 무엇인가? 어떻게 효율적으로 통합할 수 있을까? 36.1 시스템 구조왼쪽 그림과 같이 고전적 구조에서는, CPU 와 주메모리가 메모리 버스로 연결되어 있다 그래픽이나 다른 고성능 I/O 장..

[JAVA][기본] 클래스 Class

듣고 있는 강의 김영한의 실전 자바 - 기본편 Section#2 클래스와 데이터 클래스 Class클래스가 필요한 이유아래와 같이 학생 3명의 이름, 나이, 성적 정보를 출력하는 프로그램을 만든 상황이 있다 한 명의 정보가 name, age, grade 3개의 배열에 나누어져 있기 때문에 특정 학생의 데이터를 변경할 때 실수할 가능성이 매우 높고, 사람이 관리하기에 좋은 코드가 아니다 package class1;public class ClassStart1 { public static void main(String[] args) { /* 학생 이름, 나이, 성적 출력하는 문제 */ String[] studentNames = {"학생1", "학생2", "학생3"}; ..

TIL/JAVA 2024.11.16

[OSTEP][가상화] CH23 완전한 가상 메모리 시스템 +대화

발표 날짜 24.11.16 SAT 10시a.m. CH23 완전한 가상 메모리 시스템완전한 가상 메모리 시스템을 구현하기 위해서는 성능, 기능성, 보안을 위한 다양한 특징들이 있다핵심 질문 - 완전한 VM 시스템을 구현하는 방법완전한 가상 메모리 시스템을 구현하기 위해서 필요한 특징은 무엇인가?이러한 특징들은 어떻게 성능을 향상시키거나, 보안을 강화하거나, 혹은 시스템을 개선하는가?우리가 살펴볼 시스템은 1) VAX/ VMS 운영체제와 2) Linux 의 가상 메모리 시스템이다 VAX/ VMS 시스템에서 사용된 기법과 접근법들은 현재에도 사용 중이며 공부할 충분한 가치가 있고 (+ VAX/VMS 운영체제: VAX = 컴퓨터, VMS = 운영체제)Linux 는 가장 확장성이 뛰어난 다중 코어 시스템에서 효과..

[정글] Week09-10 PintOS 키워드 정리

Week09-10 PintOS 키워드 정리  User Mode VS Kernel Mode컴퓨터의 프로세서는 실행 중인 코드 유형에 따라 User Mode 와 Kernel Mode 두 가지 모드로 작동한다 어플리케이션은 User Mode 에서 작동하고, 핵심 운영 체제 구성 요소는 Kernel Mode 에서 작동한다  커널 모드 Kernel Mode 하드웨어에 대한 완전한 접근 권한을 가진다 - 메모리, 프로세스 스케줄링, 파일 시스템 관리 등의 Low Level 작업 수행 Kernel Mode 에서 실행되는 모든 코드는 단일 가상 주소 공간을 공유하기 때문에, 커널 모드 드라이버는 다른 드라이버 또는 운영체제에서 격리되지 않아, 운영체제 또는 다른 드라이버에 속하는 데이터가 손상될 수 있다 (커널 모드 ..

[JAVA] 메서드 Method 2/2

듣고 있는 인터넷 강의 메서드 Method 1/2 정리 내용 [JAVA] 메서드 Method 1/2듣고 있는 인터넷 강의  메서드 Method 를 사용하는 이유프로그램의 여러 곳에서 같은 계산을 반복해야 할 때 함수를 만들어 두고필요한 입력 값을 넣어서 해당 함수를 호출하면 코드를 여러 번helloahram.tistory.com 메서드와 형 변환 메서드를 호출할 때도 형 변환이 적용된다 🐣 인자와 매개변수가 맞지 않다면 형 변환을 해줘야 한다 🐣아래 예시는 int 형 매개변수에 double 을 대입하면 컴파일 에러가 발생하므로 형 변환을 해준다 package method;public class MethodCasting1 { public static void main(String[] args) {..

TIL/JAVA 2024.11.13

[JAVA] 메서드 Method 1/2

듣고 있는 인터넷 강의  메서드 Method 를 사용하는 이유프로그램의 여러 곳에서 같은 계산을 반복해야 할 때 함수를 만들어 두고필요한 입력 값을 넣어서 해당 함수를 호출하면 코드를 여러 번 작성할 필요가 없다  add(a, b) = a + b 라는 add 함수를 만들어 두면, 여러 곳에서 입력 값만 바꾸어서 호출하면 된다 필요한 기능을 미리 정의해두고 필요할 때마다 호출해서 사용할 수 있다 자바에서는 이러한 함수를, 메서드 Method 라고 한다 🐣 Method 도 함수의 한 종류이지만, 지금 거기까지는 생각하지 않아도 된다 🐣메서드 정의  /* int 형을 반환하는 add Method */ public static int add(int a, int b){ /* 메서드 선언 부분 */ ..

TIL/JAVA 2024.11.12

[정글] PintOS Project1 #3 Priority Scheduling 2/2

[정글] PintOS Project1 #2 Priority Scheduling 1/2 은 여기에 정리 Priority Inversion Priority Inversion 은 H (High), M (Middle), L (Low) 라는 세 개의 쓰레드가 있고, 각각의 우선순위는 H > M > L 일 때 H 가 L 을 기다리고 있는 상황 (L이 Lock을 점유하고 있는 상황에서 H가 Lock을 요청한 상황) 에서 H 가 L 에게 CPU 점유권을 넘겨주면, M 이 L 보다 우선순위가 높으므로 점유권을 선점하여 실행되기 때문에 Thread 가 마무리되는 순서가 M -> L -> H 가 되어 M 이 H 보다 우선하여 실행되는 현상이다 이런 문제를 해결하기 위해 Priority Donation 을 구현해야 한다, 아..

[정글] PintOS Project1 #2 Priority Scheduling 1/2

Project 1 에서 구현해야 할 것 1. Alarm Clock 구현 완료 2. Priority Scheduling 3. Advanced Scheduler 2. Priority SchedulingScheduling 은 Ready 상태에 있는 Thread 들의 순서를 관리하여 가장 높은 Priority 를 가진 Thread 가 Running 상태가 될 수 있도록 만들어 주는 것이다 🐣 운영체제 CH07 - CPU Scheduling 은 한 프로세스가 CPU 를 사용하는 동안 다른 프로세스가 대기하는 상황에서CPU 를 효율적으로 활용할 수 있도록 우선순위를 정하고, 프로세스들을 적절하게 배치하는 기술이다 Scheduling 현재 방식 Running 상태로 될 수 있는 상태는 Ready 밖에 없으므로, R..

[OSTEP] CH20 페이징 - 더 작은 테이블

발표 일자 2024.11.11 MON 2시p.m. CH20 페이징 - 더 작은 테이블 페이징의 두 번째 문제점은 페이지 테이블의 크기이다 (첫 번째 문제점은 성능 저하) 페이지 테이블이 크면 많은 메모리 공간을 차지하고, 각 프로세스는 자기 자신의 페이지 테이블을 갖는다 핵심 질문 - 페이지 테이블을 어떻게 더 작게 만들까단순한 배열 기반의 페이지 테이블은 (흔히 선형 페이지 테이블이라고 불림) 크기가 크며 일반적인 시스템에서 메모리를 과도하게 차지한다, 어떻게 페이지 테이블의 크기를 줄일 수 있을까? 새로운 자료 구조들은 어떤 비효율성을 갖는가? 20.1 간단한 해법 - 더 큰 페이지 페이지 테이블의 크기를 줄일 수 있는 간단한 방법은 페이지 크기를 증가시키는 것이다 🐣 페이지 테이블은 가상 주소를 ..

[JAVA] 배열 Array

Chapter08 배열 Array 수강 중인 인터넷 강의 배열은 같은 타입의 변수를 사용하기 편하게 하나로 묶어둔 것 배열을 사용하는 이유는 같은 타입의 변수를 반복해서 선언하고, 반복해서 사용하는 문제를 해결할 수 있다  배열 생성 및 초기화int[] students; //1. 배열 변수 선언 students = new int[5]; //2. 배열 생성배열을 사용하려면 int[] students; 와 같이 배열 변수를 선언한다new int[5] 라고 입력하면 5개의 int 형 변수가 만들어진다new 는 새로 생성한다는 뜻이고, int[5] 는 int 형 변수가 5개라는 뜻이다  int[] students;students = new int[]{90, 80, 70, 60, 50}; //배열 생성과 초기화..

TIL/JAVA 2024.11.08
반응형