Computer Science(6)
-
3. OS의 구조
OS의 주요 역할과 무엇을 다루는지 살펴 보았다면 이제는OS자체가 어떻게 구성되어 있고, 내부적으로 어떻게 동작하는가 살펴보자. 운영체제는 사용자로 하여금 복잡하고 직접 다루기 어려운 하드웨어 자원에 대한 사용과 관리를 용이하게 해준다. 운영체제가 사용자에게 제공하는 서비스에는 많은 것들이 존재한다. 간략하게 보면1. 사용자 인터페이스 제공2. 프로그램 실행3. 입출력 작업4. 파일 시스템 연산(관리)5. 통신6. 오류 탐지7. 자원 할당8. 회계9. 보호이 정도의 서비스를 제공한다. 이 하나하나의 서비스를 사용자에게 어떻게 제공하고, 시스템 내부에서 무슨일이 일어나는지 알아보자. 사용자 인터페이스인터페이스라 함은, 표면이라는 의미와 걸맞게 가장 외부와 맞닿아 있음을 의미한다. 이는 사용자에게 닿기도 하..
2025.04.13 -
2. Storage 구조와 I/O구조
1. Storage 구조 CPU는 연산하는 장치이다. CPU에도 기억장치가 존재하지만 이는 연산에 사용되는 데이터들이고 필요가 없어지면 즉시 빼버린다. 또한 용량에도 한계가 있기 때문에 많은 양의 데이터를 저장해 두지 못한다.그래서 CPU외부의 저장장치에 접근하여 데이터들을 가져온다. 컴퓨터를 이루는 저장장치의 구조에 대해서 살펴보자 주기억장치(Main Memory)보조 저장장치(Secondary storage)주기억장치는 우리가 RAM이라고 부르는 녀석이다. CPU는 주기억장치만 memory address를 사용하여 직접 접근한다.엄밀히 말하면 '리얼 직접'은 아니지만 CPU에서 필요한 데이터들을 적재하고 CPU는 다른 하부 저장장치가 아닌 RAM에서만 가져온다는 의미에서는 직접이라는 표현이 맞는 것 ..
2025.03.12 -
2. CPU의 구조와 기능(1)
Central Processing Unit이 녀석이 없으면 컴퓨터는 그냥 깡통이나 다름이 없다.다른 하드웨어에 대해서도 다룰때 결국 중요한건 CPU가 어떻게 다른 녀석들을 효율적으로 접근하고 관리할까에 대한 이야기이다. CPU가 대장인데 굳이 CPU의 체계와 동떨어지게 만들지는 않았을 것이니 말이다. 1. CPU의 기능명령어 인출 (Instruction Fetch) : 기억장치로 부터 명령어를 읽어온다. 명령어 해독 (Instruction Decode) : 동작을 결정하기 위해 명령어를 해독한다.이 두 기능은 모든 명령어에 대해서 공통적으로 수행된다.데이터 인출 (Data Fetch)데이터 처리 (Data Process)데이터 저장 (Data Store) 명령어와 데이터를 따로 정리 했지만 사실 같다...
2025.03.12 -
1. 컴퓨터 시스템 개요
1.컴퓨터의 기본구조실제 연산의 실체는 하드웨어에서 이루어지고, 우리는 '어떻게 하드웨어에 원하는 명령을 전달하는가' 이것이 주요 관점이다. 컴퓨터의 기능을 한마디로 프로그램 코드를 정해진 순서대로 수행하는 것이다.이 목표는 데이터를 Read, Processing, Store 함으로써 모든 것이 이루어진다. 2. 컴퓨터의 기본적인 구성요소들1. CPU- 프로그램의 실행과 데이터 처리 라는 중추적인 기능을 수행한다2. 기억장치- 기억장치에는 주기억장치와 보조저장장치가 존재한다.3. 입출력 장치(I/O device)- 사용자와 컴퓨터의 상호작용을 위한 장치들, device controller를 통해 CPU에서 제어한다. 후에 공부하게 될 내용이 모두 CPU, 메모리, I/O 장치에 대해 자세하게 다루는 내..
2025.03.10 -
1. OS가 뭔데
운영체제는 중재자다컴퓨터는 결국 물리적 전자들의 흐름으로 동작한다. 우리는 그걸 맘대로 조종했으면 좋겠다.그렇게 사용자/응용프로그램과 하드웨어 사이의 교량 역할이 필요하다.우리는 기계어를 이해할 수 없다. 그래서 자연어와 같은 형태의 명령을 원한다.하지만 컴퓨터는 기계어 밖에 이해하지 못한다.운영체제는 이 간극을 해결하기 위해 존재한다. 운영체제가 수행하는 일사용자 관점은 역시 인터페이스에 영향을 많이 받는다. 얼마나 사용하기 편하게 디자인 되어있고, 많은 기능들을 제공하며그런 것들이다. 그 뒤에서 일어나는 일이야 원리를 몰라도 알아서 잘 동작한다. 시스템적 관점은 우리가 모르게 일어나고 있는 하드웨어와 이를 제어하기 위한 동작에 대한 이야기다.자원을 할당하고 이를 효율적이고 공정하게 운영해야 한다.자원..
2025.03.10 -
학부를 졸업하고,,,
학부를 졸업하고 게임 개발을 위해 힘쓰기 시작했다.지금 생각해보면 OS, 컴퓨터 구조, 임베디드 등등 많은 CS 관련 수업을 들을 때 마다.코딩이나 다른 걸 알려주지 왜 이런걸 할까? 라는 불평아닌 불평이 있었던 것 같다.(하지만 학점을 위해 또, 재밌어서 열심히 들었다ㅋㅋ) 4학년이 되고 남은 수업도 많이 없고 이제 본격적으로 게임 업계 다이빙을 위해 이것 저것하고 있을 때였다.하지만 아는 게 없을 수록 용감하다고 했었나.처음에는 "뭐 unity에 있는 기능이나 잘 쓰면 게임 금방 만들겠지"생각했던거 같다. 공부하면 할수록 소프트웨어적 으로는 다양한 구현 방법, 디자인 패턴에 관한 이야기들이 쏟아지고 그래픽스 쉐이더, DirectX를 마주하고,하드웨어에 대한 중요성도 깨닫게 된것 같다. 시스템적으로 가..
2025.03.07