전체 글692 [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. [알고리즘] 빅오(Big-O)표기법 수학적 이해 1. Big-O를 수학으로 이해하기 이번 코드스쿼드 멘토를 진행하면서, Big-O 표현식에 대한 과제가 있었다. 물론 이에 대한 직관적인 이해까지는 대부분 하게 된다. 하지만, 성장을 원하는 개발자라면 한 번쯤 수학의 관점에서 이해할 수 있어야 된다 생각한다! 그만큼 Bio-O는 중요한 내용이다! 따라서 학생들에게 이를 설명하기 위한 12분 정도의 영상을 하나 만들었는데, 좀 부족하지만... 나름 잘? 설명했다 생각하여 유튜브 영상으로 남겨두었다! https://youtu.be/OF-BsdcFJ8U (3:49, 5:59, 7:52초 에 N제곱 이라 말한 부분 N제로 입니다 ㅎㅎ) Algorithm/PS 알고리즘 정리 2022. 11. 10. [JPA] QueryDSL 에서 Select필드로 상속한 Entity 사용시 경험한 문제 프로젝트를 진행하다 보니, ID값을 공통적인 BaseEntity에 들고 있어서 발생하는 문제가 있었습니다. 2가지 문제였는데 1) no property found for class with parameters 2) com.querydsl.core.types.QBean com.example.queyrdsl.entity.BarMoodTag with modifiers "protected" 이를 해결해보자! 1. 문제 상황 우선 PostId를 하나 받으면, 해당 포스트에 연관된 모든 MoodTag를 가져오는 것 이 목표인 상황입니다! ▶ BaseEntity @MappedSuperclass @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public abs.. BackEnd/JPA 2022. 11. 10. 이전 1 ··· 6 7 8 9 10 11 12 ··· 58 다음