본문 바로가기

Study/Computer6

[OS] 메모리 관리 (메모리할당, 단편화, swapping, segmentation) 메모리에 대한 내용은 핀토스 때 다루었으나, 전체적인 큰 그림을 다시 한번 잡고 싶어서 스터디를 준비하며 다시 정리해본다. 1. 메인메모리 메인메모리와 레지스터는 CPU가 직접 접근할 수 있는 저장장치이다. 레지스터는 일반적으로 CPU의 one cycle에 CPU가 도달할 수 있지만, 메모리는 메모리 버스를 통한 데이터의 교환으로 여러 사이클이 소모된다. 속도적인 측면을 개선하고자 하드웨어의 일종인 cache가 고안되었다. 또한 OS를 유저프로그램의 접근으로부터 보호한다던가, 프로그램 별로 서로의 영역을 침범하지 않도록 하기 위해 하드웨어가 발명되었는데 대표적으로 base register와 limit register가 있다. 메모리 공간의 분리 (유저영역과 커널영역) 유저 메모리 공간과 OS 메모리 공간.. 2023. 3. 18.
[OS] Blocking, Non-blocking, Sync, Async 개념 (굳이 4등분?) 어떤 개념이든 정확하게 정의하고 규정하는 것이 필요하지만, block, non-block, sync, async는 보면 볼수록 헷갈리는 구석이 있다. block이 sync 같고 non-block이 async 같은데 찾아보면 찾아볼수록 개념이 혼재되어 있다는 생각이 많이 들었다. (그러면서도 정확히는 다르다고들 한다..) 그러던 와중 stackoverflow에서 발견한 comment 개념이 맥락에 따라 용어 자체가 똑같이 쓰일수도, 비슷하게 쓰일수도, 혹은 다르게 쓰일 수도 있으니 너무 무자르듯이 해당 개념을 쪼개기 보다는 이해는 하되 어느정도의 추상성은 유지한채 가는게 어떨까 라는 생각을 가지게 된 것 같다. 서론이 길었다. 밑에는 정리 Blocking blocking process request가 생기.. 2023. 3. 15.
[OS] 스케쥴러와 CPU 스케쥴링 1. 프로세스 스케쥴링 정의 프로세스 스케쥴링이란 CPU로부터 running 중인 프로세스를 스케쥴에 맞게 동작시키기 위한 하나의 활동 특히 멀티프로그래밍 OS에서 필수적인 요소임 비선점형과 선점형 비선점형 : 쉽게 말해 round-robin , 강제로 빼앗지 않고 자진 반납 (non-preemptive) 선점형 : 우선순위에 따른 프로세스 switching , 강제로 빼앗음 (preemptive) 프로세스 스케쥴링 큐 OS는 PCBs를 통해 프로세스 스케쥴링 큐를 관리하며 OS는 프로세스의 상태에 따라 별개의 queue를 관리하고 있으며, 같은 상태의 프로세스 PCBs들은 같은 queue에 저장이 됨 Job Queue : 현재 시스템 내에 있는 모든 프로세스 집합 (ready queue + device.. 2023. 3. 12.
[기초] RESTful API란 무엇일까? 1. API? Application Programming Interface 두 소프트웨어가 서로 통신하는데 필요한 일종의 약속으로,통신은 requests와 response를 통해서 이루어짐 이 약속에 대한 일련의 정의(definitions)나 규약(protocols)들이 정해져있고, Client(request) → ← Server(response) 2. REST 1) REST Representational State Transfer REpresentational : 대표적인 State : 상태의 Transfer : 전송 로이필딩(Roy Fielding)이 자신의 2000년 박사 학위 논문에 정의한 네트워크 소프트웨어 아키텍처 ‘네트워크에서 통신 구성시 이런 구조로 설계하라는 지침’ 기존에는 Network.. 2023. 3. 1.
[기초] 2의 보수에 대해 알아보자! 이진법에서 -1을 표현하려면 어떻게 해야할까요? (+2의 보수) 2진법에서 (-)값을 나타내면 어떻게 나타낼 수 있을까? 머리 속에 2의 보수의 개념이 떠다니긴 하지만 그것을 말로 설명하지 못한다면 메타인지가 제대로 안되어있다는 증거이다. (내가 그렇다..) CSAPP 책을 보면서 2의 보수에 대한 개념을 접하였으나 헷갈리기 쉬운 개념인만큼 차근차근 정리해보자 https://st-lab.tistory.com/189 2진수의 수와 음수 표현법 [1의 보수와 2의 보수] 안녕하세요. 오늘은 프로그래밍이 아닌 컴퓨터의 연산에 대해 이해해보고자 합니다. 우리가 흔히 프로그래밍을 할 때는 그나마 사람에 가까운 언어로 된 고급언어들로 작성을 하지만 실제 컴퓨 st-lab.tistory.com 위의 블로그에 매우 자.. 2023. 2. 15.
크롬 개발자도구 알아보기 코치님과 얘기를 나누다가 개발자 도구에 대한 얘기가 나왔다. 개발자 도구에는 어떤 기능들이 있을까? 고민해보다가 찾아본 내용들 탭 Element : HTML과 CSS를 분석 Console : 자바스크립트를 실행하고 그 결과를 분석 Sources : 자바스크립트 디버깅 Network : 통신상황을 모니터링 Performance : 성능을 튜닝할 때 사용 Application : 웹을 앱으로 만들어주는 기능 Network 탭 웹브라우저와 서버 사이의 상황을 모니터링 하고 싶을 때 Network 탭을 사용 녹화버튼으로 모니터링 시작 → 리로딩 및 통신내역 볼 수 있음 각 항목별 속성이 컬럼에 나타나고, 오른쪽 클릭하여 메소드 편집 가능 항목별 Headers : 헤더정보가 나옴 Response : 응답한 데이터.. 2023. 2. 9.