본문 바로가기

전체 글65

스케쥴링 스케쥴링 목차 소스코드의 컴파일 과정 Preprocessing(전처리) Compile -> assembly Liking 스케쥴링 선점형(Preemptive) 스케쥴링 Round Robin MFQ(multi feedback queue) 스케쥴링 주요 문제점 starvation problem DeadLock 비선점형(Non-Preemptive) 스케쥴링 소스코드의 컴파일 과정 프로그램이 되기 위해서는 main 함수가 필요하다. Preprocessing(전처리) 코드 줄바꿈 없애고 한줄로 바꿈(c언어) 컴파일할수 있는 단계까지 전처리 매크로 대체, 조건부 컴파일 지시문 테스트, file include Compile -> assembly(binary file(=object file)로 바꿔줌. .o file) .. 2022. 11. 20.
NginX 웹서버 배포하기[Python+React+Gunicorn] NginX 웹서버 배포하기 웹서버 웹서버 요약 하드웨어 측면에서, web server는 소프트웨어와 컴포넌트 파일들을 저장하는 컴퓨터이다 컴포넌트 파일에는 HTML 문서, 이미지, css, js 파일들이 있다. web server는 인터넷에 연결되어 웹에 연결된 다른 기기들이 웹서버의 데이터(컴포넌트 파일들)를 주고받을 수 있도록 한다. 소프트웨어 측면에서, web server는 기본적으로 웹 사용자가 어떻게 호스트 파일들에 접근하는지를 관리한다. HTTP 서버는 URL과 HTTP의 소프트웨어 일부이다. 가장 기본적인 단계에서, 브라우저가 웹 서버에서 불려진 파일을 필요로 할때, 브라우저는 HTTP를 통해 파일을 요청한다. 요청이 올바른 웹 서버에 도달하였을 때, HTTP 서버는 요청된 문서를 HTTP를.. 2022. 11. 13.
책 [함께 자라기 애자일로 가는 길] 후기 및 정리 함께 자라기 애자일로 가는 길 후기 애자일이 무엇인지, 그리고 개인과 팀에 어떻게 도입할 것인지를 다루는 책이다. 애자일은 불확실성을 다루는 대응 방식으로, 좀 더 짧은 주기로 더 일찍부터 피드백을 받고, 더 다양한 사람으로부터 더 자주 그리고 일찍 피드백을 받는 것으로 정리할 수 있다. 저자는 애자일을 애자일다운 방식으로 도입하는 것이 필요하다고 말하며, 애자일을 구동하는 원리를 성장적인 학습(자라기)과 협력(함께)라는 두 축으로 설명하고 있다. 개인의 성장과 팀의 성장을 애자일한 방식으로 견인하기 위해서는 애자일적 사고 방식이 중요하다는 것을 알게 되었다. 애자일은 어떠한 방법론 자체가 아니라, 찾아가는 모습이 애자일이다. 이러한 생각 거리들과 방법론들을 정리해서 적용해가면서 애자일을 삶에 도입하고 .. 2022. 10. 23.
Process와 Thread Process와 Thread 목차 Process Thread User Level Thread Kernel Level Thread Kernel Thread Context Process 프로그램을 실행시키면 프로세스라는 형태로 메모리에서 관리가 된다. 프로세스는 하나 이상의 스레드(thread of control)를 가진다. 프로세스간에 서로 통신하려면 IPC를 거쳐야한다. 프로세스는 스케쥴링의 대상이 된다. 스케쥴링의 대상은(Process, Thread, Data-Flow)이다. 프로세스는 스레드가 동작하는 환경이다 Thread( of control) 프로세스 코드가 진행되는 흐름을 스레드라고 함 스레드를 LWP(light weight process)라고도 한다. 필수요소에는 context(PC등의 reg.. 2022. 10. 11.
운영체제와 Kernel 운영체제 목차 운영체제의 구성 프로그램 부트 로더 Kernel Shell Kernel의 구성요소 Process Management synchronization memory management file system management I/O managemant(device drivers) hardware interrupt system call user level 과 kernel level 운영체제의 구성 프로그램 부트 로더 컴퓨터가 켜졌을 때 운영체제에 필요한 조치를 취하고 하드 디스크 드라이브에 기록되어 있는 운영체제를 실행하는 프로그램이다. BIOS setup => Boot loader(GRUB) => 운영체제 코드위치로 PC를 이동시켜준다. MBR이라는 하드 디스크의 첫번째 섹터 구간에 운영체제 코드.. 2022. 10. 4.
Instruction과 Pipelining Instruction과 Pipelining 목차 Instruction 구조 타입 address와 메모리 Pipelining Five Stage Pipelining Hazards Data Hazards Structural Hazards Control Hazards Instruction CPU의 PC 레지스터에 의해 instruction memory 영역에 불러들여진 4byte 단위(32bit 운영체제 기준)의 기계어 코드이다. 구조 4bit는 opcode로 명령어와 매핑된다. rs, rt, td는 레지스터를 가리킨다. address: 메모리 주소를 나타낸다. 타입: opcode에 따라 instruction의 타입이 결정된다. R-type: 두 레지스터를 더한 결과값을 레지스터에 저장하는 instructio.. 2022. 9. 27.