본문 바로가기

전체 글400

[Java] static은 언제, 어떻게 사용해야 할까? 자바 공부를 하면서 static이 무엇인지는 배웠는데... 도대체 어떤 상황에서는 꼭 사용해야 하고, 어떤 상황에서는 사용하지 말아야 하는지가 궁금해졌다. static static은 고정된, 정적인 이라는 의미이다. static이라는 키워드를 사용해서 static field(정적 필드)와 static method(정적 메소드)를 만들 수 있다. 이 둘을 묶어서 정적 멤버(클래스 멤버)라고 한다. 즉, 객체(인스턴스)에 소속된 멤버가 아닌 클래스에 고정된 멤버라는 뜻이다. 객체를 생성하지 않고도 사용할 수 있는 이유가 바로 static은 객체에 소속된 것이 아니기 때문이다. static에 대해 글을 찾아보니 JVM에 관한 내용이 함께 나오는데, JVM에 대해서는 개념 정도만 알고 있었기 때문에 다시 정리해.. 2024. 2. 16.
[OS] 쉽게 배우는 운영체제 4장 연습문제/심화문제 연습문제 1. 시스템 내 전체 프로세스의 수를 조절하는 것으로, 장기 스케줄링 또는 작업 스케줄링이라 불리는 스케줄링 수준은 무엇인가? 고수준 스케줄링 2. 어떤 프로세스에 CPU를 할당하고 어떤 프로세스를 대기 상태로 보낼지 등을 결정하는 스케줄링 수준은 무엇인가? 저수준 스케줄링 3. 어떤 프로세스가 CPU를 할당받아 실행 중이더라도 운영체제가 CPU를 강제로 빼앗을 수 있는 스케줄링은 무엇인가? 선점 스케줄링 선점형스케줄링 4. 현재 입출력을 진행하는 프로세스로, 사용자와 상호작용이 가능하여 상호작용 프로세스라고도 불리는 것은 무엇인가? 입출력 집중 프로세스 전면 프로세스 5. 준비 큐에 도착한 순서대로 CPU를 할당하는 비선점형 스케줄링 알고리즘은 무엇인가? FCFS 6. 준비 큐에 있는 프로세스.. 2024. 2. 15.
[OS] Ch.4 CPU 스케줄링 1. 스케줄링의 개요 프로세스는 생성, 준비, 실행, 대기와 같은 여러 상태를 거치며 작업이 이루어진다. CPU 스케줄러는 프로세스가 생성된 후 종료될 때까지 모든 상태 변화를 조정하는 일을 한다. 스케줄링의 단계 고수준 스케줄링 시스템 내의 전체 작업 수를 조절 어떤 작업을 시스템이 받아들일지 또는 거부할지를 결정 동시에 실행 가능한 프로세스의 총 개수가 정해짐 저수준 스케줄링 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기 상태로 보낼지 등을 결정 중간 수준 스케줄링 중지(suspend)와 활성화(active)로 전체 시스템의 활성화된 프로세스 수를 조절하여 과부하를 막음 스케줄링의 목적 공평성 : 모든 프로세스가 자원을 공평하게 배정받아야 하며, 자원 배정 과정에서 특정 프로세스가 배제되어.. 2024. 2. 15.
[OS] 쉽게 배우는 운영체제 3장 연습문제/심화문제 연습문제 1. 프로그램이 프로세스가 되려면 운영체제로부터 무엇을 받아야 하는가? PCB 2. 프로세스의 상태 중 CPU를 할당받기 위해 기다리는 상태는 무엇인가? 준비 3. 프로세스의 상태 중 입출력 작업을 하기 위해 이동하는 상태는 무엇인가? 대기 4. CPU 스케줄러가 준비 상태에 있는 프로세스 중 하나를 골라 CPU를 할당하는 작업을 무엇이라고 하는가? 디스패치 5. 유닉스에서 Ctrl + Z 키를 눌러 프로세스가 중단되면 프로세스는 어떤 상태로 바뀌는가? 휴식 6. 실행 상태에서 하나의 프로세스가 나가고 새로운 프로세스가 들어오는 상황을 무엇이라고 하는가? 문맥 교환 7. 실행 중인 프로세스로부터 새로운 프로세스를 복사하는 시스템 호출은 무엇인가? fork() 8. 프로세스의 골격은 그대로 둔 채.. 2024. 2. 15.
[OS] Ch.3 프로세스와 스레드 프로세스 개요 프로세스의 개념 프로그램 : 저장장치에 저장되어 있는 정적인 상태 프로세스 - PCB = 프로그램 프로세스 : 실행을 위해 메모리에 올라온 동적인 상태 프로그램 + PCB = 프로세스 일괄 작업 방식 한 개가 끝나야 다음 것이 가능 시분할 방식 배분해서 여러가지 동시에 수행(현재 방식) 프로세스의 상태 생성 상태 프로그램 + PCB 한 상태. 이제 준비상태로 옮겨져 기다려야 한다. 준비 상태 실행을 기다리는 모든 프로세스가 자기 차례를 기다리는 상태이다. 실행될 프로세스를 CPU 스케줄러가 선택한다. 실행 상태 선택된 프로세스가 타임 슬라이스를 얻어 CPU를 사용하는 상태이다. 프로세스 사이의 문맥 교환이 일어난다. 대기 상태 실행 상태에 있는 프로세스가 입출력을 요청하면 입출력이 완료될 .. 2024. 2. 15.
[ZB] 앞으로의 백엔드 공부 계획 (feat. 백엔드 공부법) 아래 목록은 현재 내가 하고 있는 것들이다. 제로베이스 백엔드 스쿨 21기 CS 면접 스터디 SW Architecture 스터디 코테 해체 스터디 ZB 강의 목록과 공부 중인 책, 앞으로 공부하고 싶은 책들 위주로 정리해보았다. 이렇게 정리해보니 앞으로도 해야 할 것이 많다...! 2월로 들어서면서 조금 느슨해졌는데 다시 루틴을 잡아야겠다! 1. Java ZB 강의 Java 기초 Java 핵심 복습 쉽게 배우는 자바 책 Java의 정석 - 기초편 이재환의 자바 프로그래밍 입문 이펙티브 자바 모던 자바 인 액션 262가지 문제로 정복하는 코딩 인터뷰 in Java 초보자를 위한 Java 200제 2. 자료구조 / 알고리즘 ZB 강의 기초 수학 선형 자료구조 비선형 자료구조 알고리즘 기출 문제 풀이 책 Do.. 2024. 2. 11.