전체 글694 [OS] CPU Scheduling - 1 본 글은 반효경 교수님의 운영체제 강의를 들으며 정리하는 글 입니다. 1. CPU burst와 I/O burst 일반적으로 다음과 같아 cpu burst 와 I/O burst가 번갈아 가면서 CPU가 사용된다. 이처럼 사용자 프로그램이 수행되는 과정은 CPU 작업과 I/O 작업의 반복으로 구성된다. 1 - 1) CPU burst CPU burst는 사용자 프로그램이 CPU를 가지고 빠른 명령을 수행하는 단계이다. 이 단계에서 사용자 프로그램은 CPU 내에서 일어나는 명령 (ex. Add)이나 메모리(ex. Store, Load)에 접근하는 일반 명령등 을 사용할 수 있다. 1 - 2) I/O burst I/O burst는 커널에 의해 입출력 작업을 진행하는 비교적 느린 단계이다. 이 단계에서는 모든 입출.. CS/OS (2022-1) 2022. 11. 23. [JPA] QueryDsl에서 Groupy By적용 후 가장 큰 원소 가져오기 우선 이번 글은 제가 쿼리를 잘 못짠 부분도 있기 때문에, 다른 방식도 있을 수 있습니다. 다만 구글에 검색시 별다른 방법이 보이지 않아 글을 작성해 봅니다. 1. 문제가 된 상황 프로젝트를 진행하다 보니 다음과 같은 상황이 있었습니다. User와 Post는 중간테이블인 Scrap을 두고 N:M 관계를 형성하고 있습니다. Post와 PostPhoto는 1: N의 관계로, 하나의 Post당 여러 PostPhoto가 있는 상황이였습니다. 자 여기서 의문점! 1) 사용자가 다음과 같이 원하는 피드에서 저장하기(스크랩) 버튼을 누른다. 2) scrap 엔티티로 저장된다. 3) 이후 다음과 같이 프로필 페이지에서 "관심목록"을 누를경우, 스크랩된 하나의 피드당 하나의 대표 사진만 보여줘야 한다. 이를 어떻게 Qu.. BackEnd/JPA 2022. 11. 23. [OS] Process Management 본 글은 반효경 교수님의 운영체제 강의를 들으며 정리하는 글 입니다. 1. Process의 관리 1 - 1) 프로세스 생성 운영체제가 최초의 프로세스를 생성하면, 이미 존재하는 프로세스가 다른 프로세스를 복제 생성한다. 이때 기존 프로세스를 부모 프로세스라 하고, 새로 생긴 프로세스를 자식 프로세스라고 부른다. 프로세스의 트리 (계층 구조)를 형성한다. 프로세스는 자원을 필요로 한다. 운영체제에게 받는다. 부모와 공유한다. 자원의 공유 (3가지 모델이 가능하다) 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 수행 (Execution) 부모와 자식이 공존하며 수행하는 모델 (이때는 부모와 자식이 CPU를 획득하기 위해 경쟁하는 관계가 됨) 자식이 종료(termina.. CS/OS (2022-1) 2022. 11. 22. [OS] Process - 2 본 글은 반효경 교수님의 운영체제 강의를 들으며 정리하는 글 입니다. 1. Thread 란? Process 내에서 실행 되는 여러 흐름의 단위 혹은 프로세스가 할당 받은 자원을 이용하는 실행 흐름의 단위를 뜻한다. 하나의 Process내에서 동일한 코드를 실행하고 싶은경우 Thread를 여러개 생성하여 작업을 시킨다. Thread를 경량 프로세스(light weight process)라고 부르기도 한다. 각각의 Thread 들은 다음 3가지를 제외하고는 Process의 것을 공유하여 사용한다. program counter register set stack space 각 Thread별로 자신의 stack, register, PC를 가지게 된다. 1 - 1) Thread가 다른 Thread와 공유하는 부분 .. CS/OS (2022-1) 2022. 11. 21. [OS] Process - 1 본 글은 반효경 교수님의 운영체제 강의를 들으며 정리하는 글 입니다. 1. Process란? Process is a program in execution 즉, Process는 실행 중인 프로그램이다! 디스크에 실행 파일 형태로 존재하던 프로그램이 메모리에 올라가서 실행되기 시작하면 비로소 실행 가능한 프로세스가 되는 것이다. 2. 프로세스의 문맥(context) 프로세스가 시작해서 종료될 때 까지 CPU에서 명령을 한꺼번에 수행하면 좋겠지만, 여러 프로세스가 함께 수행되는 시분할 환경에서는 프로세스는 CPU를 빼앗기고 획득하는 과정을 반복하게 된다. 따라서 CPU를 빼았겻따가 다시 획득해 이전에 수행하던 일을 재개하는 시점이 되면, 이전 CPU 보유 시기에 어느 부분까지 명령을 수행했는지 정확한 상태를 .. CS/OS (2022-1) 2022. 11. 21. [TIL] 일일 회고 2022/11/21 계속 회고를 저녁에 쓰려하니 까먹게 되는 것 같아 아침에 작성해본다! 요즘 한 일 1. 프로젝트 중간 마감 술술 이라는 이름의 지역 기반 애플리케이션을 만드는 중인데, 중간 점검 겸 간단하게 의견도 나누고, 지금까지 만든 상황을 기반으로 짧은 영상을 만들었다. 아직 많이 부족 하기는 한데... 대략 한 20% 정도 구현된 느낌?? 생각보다 아직도 구현할 사항들이 많다. 어찌됬던 팀원들과 최종 마감일을 정해두었기 때문에 일단 무조건 구현하고(테스트는 병행하고 있음) 추후 다시 부족했거나, slow query 부분들을 개선해 나가야 할 것 같다. 앞으로 일주일간 더 프로젝트에 힘을 집중하여, 일주일안에 기능 구현은 거의 마무리 하려 한다!! 2. 운영체제 복습 시작 사실 운영체제 자체를 처음 학습하는 것은 .. Life/회고록 2022. 11. 21. [OS] System Structure & Program Execution 2 본 글은 반효경 교수님의 운영체제 강의를 들으며 정리하는 글 입니다. 1. 동기식 입출력과 비동기식 입출력 1 - 1) 동기식 입출력 vs 비동기식 입출력 바로 위 그림은 동기식(Synchronous)입출력과 비동기(Asynchronous)식 입출력의 비교해 보여 준다. 사용자가 입출력 요청을 하면 동기식 입출력에서는 먼저 운영체제의 커널로 CPU의 제어권이 넘어가서 입출력 처리와 관련된 커널의 코드가 수행된다. 이때 입출력을 호출한 Process의 상태를 Blocked 상태로 바꾸어 요청한 입출력이 완료될 때까지 CPU를 할당받지 못하게 된다. 입출력이 완료되면 I/O 컨트롤러가 CPU에게 인터럽트를 발생시켜 입출력이 완료되었음을 알려주고, Blocked 상태인 해당 프로세스에게 CPU를 할당받을 수 .. CS/OS (2022-1) 2022. 11. 20. [OS] System Structure & Program Execution 1 본 글은 반효경 교수님의 운영체제 강의를 들으며 정리하는 글 입니다. 1. 컴퓨터 시스템의 구조 1 - 1) 큰 흐름 컴퓨터 시스템의 구조는 컴퓨터 내부 장치인 CPU, 메모리 와 컴퓨터 외부 장치(입출력 장치)인 디스크, 키보드, 마우스, 모니터, 네트워크 장치 등으로 구분된다. 컴퓨터는 외부 장치에서 내부 장치로 데이터를 읽어와 (input) 각종 연산을 수행한 후, 그 결과를 외부 장치로 내보내는(output) 방식으로 업무를 처리한다. 1 - 2) 각 요소 살펴보기 우선 다음 그림을 살펴보자! 1 - 2 - 1) CPU CPU는 클럭마다 메모리에서 명령(Instruction)을 하나씩 읽어서 실행하는 역할을 한다. 계속 인스트럭션을 읽어나가야 하는 운명이다. IO가 일어나면 CPU가 직접 접근하지.. CS/OS (2022-1) 2022. 11. 19. [OS] Introduction to Operating Systems 본 글은 반효경 교수님의 운영체제 강의를 들으며 정리하는 글 입니다. 1. 운영체제의 정의 운영 체제(operating system)란 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어를 말한다. 운영 체제는 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층이다. 운영 체제 자체도 하나의 소프트웨어로서 전원이 켜짐과 동시에 메모리에 올라간다. 하지만 운영 체제처럼 규모가 큰 프로그램이 모두 메모리에 올라간다면 한정된 메모리 공간의 낭비가 심할 것이다. 따라서 운영 체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려 놓고, 그렇지 않은 부분은 필요할 때 메모리로 올려서 사용하게 된다. 1 - 1) 좁은 의미의 운영체제 메모리에 상주하는 운영 체제의 부분을 커널(kernel)이.. CS/OS (2022-1) 2022. 11. 18. [Java] static inner class 는 언제 로드, 초기화가 될까? 최근 코코아 과정 수업도중에 질문받은 내용중 인상깊었던 질문을 조금더 정리해볼까 한다. 학생분이 질문했을때 나 또한 순간 static 키워드에 생각이 쏠려서 "왜? 맨처음 초기화가 안된거지?"라는 생각에 빠졌는데... 가장 큰 키워드를 생각 안하고있었다... "Inner Class"라는 점.... 이점만 다시 상기하면 다행이 나의 설명이 틀리지는 않았었다! (진짜 사람이 순간 당황하니까 진짜 내가 알고있던 지식이 왜곡 되는 느낌이였다.... ) 우선 문제가된 singleton 코드를 잠시 살펴본후, 이에 대하여 알아보자! 1. LazyHolder 방식의 singleton public class OuterSingleton { private OuterSingleton() { } public static Ou.. BackEnd/Java 2022. 11. 16. [프로그래머스][C++] 경주로 건설 (257) (25번 반례 포함) 직접 풀어보고 올리는 코드입니다. 지적이나 더 좋은 방향에 대한 댓글은 항상 환영합니다. https://school.programmers.co.kr/learn/courses/30/lessons/67259 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 생각의 흐름 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 사실 맨처음 문제를 보자마자 25*25 칸을 완전탐색해도 대각선 아래방향으로만 확인한다 치면, 25*25*3(온 방향의 반대 방향은 안가도 된다 생각) 의 경우를 모두 확인하면 된다 생각했다. 따라서 당연히 완전탐색으.. Algorithm/프로그래머스 2022. 11. 12. [TIL] 일일 회고 2022/11/10 최근 회고할 점들을 모아서 작성해볼까 한다. 요즘 한 일 1. 코드스쿼드 코코아 멘토 2주의 끝 멘토 기간이 총 4주로, 2주씩 2번 진행하는데, 이번을 마지막으로 다음 주부터는 담당하는 멤버들이 바뀌게 된다 ㅠ,ㅠ 어느덧 나름(?) 정들었던 3, 4조....(설마 나만?)를 떠나보내려니 아쉬운 마음이 가득하다... 특히나 마지막날 3조와 인사하지 못하고 끝나버린 점이 매우 아쉽다...... 2주간 정말 모두 수고 많으셨고, 나머지 2주도 하던 페이스 그대로 유지만 하셔도 엄청 성장하실 분들이다! 아! "로이"가 내 블로그를 홍보해주셨는뎈ㅋㅋㅋㅋ 아 진짜 부끄럽습니다 ㅋㅋㅋㅋㅋ 이게 뭐랄까 잘못된건 아닌데 그...? 약간 발가 벗겨지는 듯한? 그런 느낌적인 느낌 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 그리고 "파이"가.. Life/회고록 2022. 11. 10. 이전 1 ··· 6 7 8 9 10 11 12 ··· 58 다음