전체 글 38

[운영체제] 운영체제의 중요한 개념들

이전 포스팅 [운영체제] 운영체제란? 이 포스팅에서 다루는 내용 운영체제의 개념, 커널 모드, 유저 모드, 추상화 들어가며... 우리가 잘 아는 윈도우, 맥 OS, 리눅스 등이 모두 운영체제이다. 운영체제가 설치되지 않은 컴퓨터를 사용 thisisphysis.tistory.com 운영체제: 하드웨어 자원 관리와 추상화를 제공하는 소프트웨어 이번 포스팅 대부분의 운영체제는 프로세스, 주소공간, 파일과 같은 개념들과 추상화를 제공한다. 이번 포스팅에서는 이러한 기본 개념들을 간단히 살펴볼 것이다. 이후에 하나하나 자세하게 다룰 예정이다. Operating System Concept Process Address space File Input/Output Protection 프로세스 Process 프로세스 : ..

[운영체제] 현대 운영체제가 가지는 특징

이전 포스팅 [운영체제] 운영체제의 여러 종류 | Batch, Multi-programming, Time-Sharing, Distributed, Real Time OS 등 이전 포스팅 [운영체제] 운영체제의 역사 (feat. 컴퓨터의 역사) 이 포스팅에서 다루는 내용운영체제의 역사, 컴퓨터의 역사, 배치시스템, resident monitor (상주모니터), spooling, multiprogramming 들어가며 thisisphysis.tistory.com 운영체제가 등장한 지 수년이 지남에 따라 많이 발전한 운영체제는 향상된 기능과 보안 서비스를 갖추게 되었다. 그래서 이번 포스팅에서는 안정적이고, 효율적인, 그리고 사용자 친화적인 서비스를 제공하는 오늘날의 운영체제가 가지는 특징을 알아보려 한다. 명..

[운영체제] 운영체제의 여러 종류 | Batch, Multi-programming, Time-Sharing, Distributed, Real Time OS 등

이전 포스팅 [운영체제] 운영체제의 역사 (feat. 컴퓨터의 역사) 이 포스팅에서 다루는 내용운영체제의 역사, 컴퓨터의 역사, 배치시스템, resident monitor (상주모니터), spooling, multiprogramming 들어가며...지금의 운영체제들이 왜 이러한 모습을 갖추게 되었는지는 thisisphysis.tistory.com 이번 포스팅에서 다루는 내용 운영체제의 여러 종류 배치 시스템, 멀티 프로그래밍 시스템, 멀티 프로세싱 시스템, 멀티 테스킹 시스템, 분산 시스템, 시분할 시스템, 네트워크 시스템, 실시간 시스템 + (나름 운영체제의 발전 순서대로 나오기 때문에 참고,,) 예전에는 하나의 컴퓨터를 여러 명이 사용하는 것이 일반적이었다 배치 시스템 Batch Operating S..

[컴파일러 만들기] 2. 컴파일의 첫 번째 단계 - 어휘 분석

'컴파일러 만들기' 책을 참고하여 진행. 이번 포스팅은 컴파일의 첫 번째 단계인 어휘 분석에 대해 알아보고 어휘 분석 구현에 대해 다룬다. 컴파일 : 소스 코드를 목적 코드로 번역하는 과정 컴파일 단계 : 소스 코드 -> 어휘 분석 > 구문 분석 > 코드 생상 -> 목적 코드 + 여기서 컴파일러는 c++ 을 사용해서 작성한다! 어휘 분석 lexical analyze어휘 분석은 프로그래밍 언어로 작성한 소스 코드의 문자열을 분석하는 과정이다. 💭 소스 코드 문자열은 무엇으로 구성되어 있을까? 바로 어휘들이다! 소스 코드 문자열은 어휘들의 나열이다. 어휘 분석은 곧 소스 코드의 문자열의 어휘 분석을 하는 것이다. 💭 어휘에는 어떤 것들이 있을까?키워드: for, if, function, return 등과 같..

[컴파일러 만들기] 1. 시작 | 프로그래밍 언어와 컴파일러

'컴파일러 만들기' 책을 참고하여 진행하는 프로젝트. 1. 프로그래밍 언어 고급 언어 : 사람을 위한 언어로 이해하기 쉽다. (C, C++ 등) 저급 언어 : 컴퓨터를 위한 언어로 컴퓨터가 이해하고 실행할 수 있는 언어이다. (어셈블리 코드, object 코드, 기계어) -> 고급 언어로 작성한 코드를 컴퓨터에서 실행시키기 위해서는 저급 언어로 바꾸는 과정이 필요하다. 고급 언어를 저급 언어로 변환하는 방식에 따라 컴파일 방식과 인터프리트 방식으로 나뉜다. 또 프로그래밍 언어는 변환 방식에 따라 컴파일 언어와 인터프리터 언어로 나뉜다. 컴파일 언어 컴파일 언어로 작성된 소스 코드 전체가 저급 언어로 변환(컴파일) 되어 실행되는고급 언어이다. 인터프리터 언어 인터프리터에 의해 소스 코드가 한 줄씩 실행되는..

[컴파일러 만들기]

언젠가 한번 꼭 해보고 싶었던 컴파일러 만들기와 운영체제 만들기 ... 교보문고 갔다가 '컴파일러 만들기'라는 책이 내 눈에 들어왔다. 바로 집어 들고 결제!! 바로 만들어 보겠습니다. 컴파일러 만들기 | 유종원 - 교보문고 컴파일러 만들기 | 현대 소프트웨어는 하드웨어의 성능 발전에 힘입어 많은 부분에서 추성화된 덕택에 코딩에 입문하기도 쉬워졌고 원하는 프로그램을 만들기도 쉬워졌다. 하지만 컴퓨터를 더 product.kyobobook.co.kr 다루는 내용 소스 코드의 문자열 분석 방법 소스 코드의 구조 분석 방법 인터프리터 구현 방법 컴파일러 구현 방법 가상머신 구현 방법 가비지 컬렉터 구현 방법 어셈블리를 통해 배우는 컴퓨터의 동작 방식 왜 하냐? 프로그래밍을 잘하려고. 컴파일러를 만들면 리스트, ..

[운영체제] 커널과 디바이스 드라이버란 무엇일까

이전 포스팅 What are the parts of an OS? 운영체제의 핵심적인 부분은 다음과 같다. 커널디바이스 드라이버유저 인터페이스시스템 유틸리티 커널운영체제의 핵심 부분 supervisor, core, or internals of the OS 운영체제가 제공하는 서비스는 굉 thisisphysis.tistory.com 운영체제 : 커널 모드에서 실행되는 추상화와 자원 관리를 제공하는 소프트웨어! 운영체제의 구성 : 커널, 디바이스 드라이버, 시스템 유틸리티, 유저 인터페이스 커널 운영체제의 핵심 기능을 담당하는 커널. 커널이 다르면 프로그램이 하드웨어를 이용하는 양상과 컴퓨터의 성능 등이 달라질 수 있다. 일반적인 시스템에서 전원을 키게 되면 (부팅을 하게 되면) 커널이 먼저 메모리에 로드되고..

[운영체제] 운영체제의 구성요소 What are the parts of an OS?

운영체제의 핵심적인 부분은 다음과 같다. 커널 디바이스 드라이버 유저 인터페이스 시스템 유틸리티 커널 운영체제의 핵심 부분 supervisor, core, or internals of the OS 운영체제가 제공하는 서비스는 굉장히 다양하다. 그 중 핵심적인 서비스를 담당하는 부분을 커널이라고 한다. 커널은 OS가 제공하는 다른 서비스들을 위한 기본적인 서비스를 제공하고, 자원을 분배한다. 커널은 하드웨어와 OS 사이의 중요한 레이어다. 디바이스 드라이버 디바이스 드라이버는 운영체제가 다양한 하드웨어 디바이스들을 잘 이용할 수 있게 돕는 특별한 소프트웨어이다. (Kernel, device driver 따로 포스팅 예정 …) 시스템 유틸리티 운영체제는 시스템을 관리하고 문제를 해결하기 위한 유틸리티를 제공..

[MySQL] CRUD | SQL 기본 문법

HTML 삽입 미리보기할 수 없는 소스 MySQL 데이터 관리; CRUD 이번 포스팅에서는 MySQL에 데이터베이스와 테이블을 생성하고 데이터를 추가, 조회, 갱신, 삭제하는 방법 (SQL 문법)을 다룬다. 데이터베이스 서버 안에는 데이터베이스들이 있고, 데이터베이스 안에는 테이블들이 존재하므로 순서는 다음과 같이 데이터베이스(스키마) 생성 테이블 생성 데이터 추가 (CRUD) 스키마 생성 및 사용 데이터베이스 생성, 삭제, 확인 및 사용하기 데이터베이스 생성 CREATE DATABASE database_name; 데이터베이스 삭제 DROP DATABASE database_name; 데이터베이스 확인 SHOW DATABASES; 또는 SHOW SCHEMAS; 데이터베이스 서버에 존재하는 데이터베이스들의 ..

Database 2023.08.16

[MySQL]

HTML 삽입 미리보기할 수 없는 소스 review SQL; Structured Query Language 구조화된 질의 언어! MySQL : 관계형 데이터베이스 중 하나 MySQL 현재 모든 DB 중에서 두번째로 많이 사용되고 있는 데이터베이스다. (1위는 Oracle) 특징 관계형 데이터베이스 무료 오픈소스 WEB과 동반 성장 구조 가장 작은 건 테이블(표) 데이터베이스는 여러 테이블을 grouping 데이터베이스는 일종의 스키마, 테이블들을 grouping할 때 사용하는 일종의 폴더. 관련된 데이터들끼리 묶어둔다. 데이터베이스 서버는 여러 데이터베이스를 묶어 놓은 것 설치 & 실행 설치 무료 버전인 community edition을 사용 -> community server download link ..

Database 2023.08.16