TEAM STUDY (156) 썸네일형 리스트형 표준 I/O 표준 I/O 장치 드라이버 내의 버퍼링은 문제 중 일부만 해결해준다. 사용자 프로그램에도 비슷한 문제가 있다. 장치 드라이버가 입력을 버퍼링해도 사용자 프로그램이 사용자가 문자를 입력할 때마다 시스템 콜을 호출하면 장치 드라이버 쪽 입력 버퍼가 아무 쓸모가 없다. 마찬가지로 사용자 프로그램이 문자를 기록하기 위해 매번 시스템 콜을 호출하면 장치 드라이버에 출력 버퍼가 아무 역힐도 못한다. 이런 상황이 자주 있기 때문에 표준 입출력 라이브러리 ( stdio ) 가 만들어졌다. 표준 입출력 라이브러리에는 사용자 프로그램이 쓸 수 있는 버퍼 I/O 함수가 들어 있다. stdio 라이브러리는 버퍼 입력을 지원한다. 버퍼 입력을 사용하면 시스템 콜을 한번만 사용해 장치 드라이버에서 읽은 데이터를 버퍼에 넣을 수 .. context switch (문맥교환) 이란 ? context switch ( 문맥교환 ) 이란 ? 멀티프로세스 환경에서 CPU가 어떤 하나의 프로세스를 실행하고 있는 상태에서 인터럽트 요청에 의해 다음 우선 순위의 프로세스가 실행되어야 할 때 기존의 프로세스의 상태 또는 레지스터 값(Context)을 저장하고 CPU가 다음 프로세스를 수행하도록 새로운 프로세스의 상태 또는 레지스터 값(Context)를 교체하는 작업을 Context Switch(Context Switching)라고 한다. ⚫ Context Switching - 인터럽트(Interrupt) 인터럽트는 CPU가 프로그램을 실행하고 있을 때 실행중인 프로그램 밖에서 예외 상황이 발생하여 처리가 필요한 경우 CPU에게 알려 예외 상황을 처리할 수 있도록 하는 것을 말한다. 아래와 같은 인터.. 저수준 언어와 고수준 언어 오늘은 스터디 와중에 JW 선배가 저수준 언어와 고수준 언어에 대해 질문을 했는데, 들어보기는 했어도 자세히 다뤄본적이 없어서 대답하지 못했다. 이 기회에 저수준 언어와 고수준 언어에 대해 알아봐야겠다. 컴퓨터는 사용자가 제공한 지침에 따라 작동한다. 특정 작업을 수행하기 위해 작성된 일련의 지침은 컴퓨터 프로그램이라 하고 컴퓨터 프로그램의 모음을 소프트웨어하고 한다. 컴퓨터 프로그램 또는 소프트웨어는 컴퓨터 프로그래밍언어를 사용해서 작성된다. 프로그래밍언어는 크게 두가지로 나뉜다. High Level Programing Language ( 고수준 언어 ) Low Level Programing Language ( 저수준 언어 ) 고수준 언어란 (고수준 언어) ? ⚫ 고수준 언어 EX Java C C # .. 이제는 '컴파일과 인터프리터' 모르면 안됨 🔊 컴파일과 인터프리터의 차이점은 물론 컴파일과 인터프리터가 무엇인지도 개념도 중요하게 생각지 않았는데 기본 개념이라구 !!! 이번 스터디에서 강조해준 선배님들 덕에 한번 더 집고 가야겠다 !!! 🙋♀️ 컴파일과 인터프리터는 사람이 이해할 수 있는 고급언어로 작성된 소스 코드를 기계가 번역할 수 있는 기계어로 번역한 후에 프로그램을 실행하는 것이다. ✅ 컴파일러(번역기) 컴파일러는 사람이 고급 언어를 작성을 하면 해당 고급 언어를 한 번에 번역을 합니다. 그렇기 때문에 줄 단위로 번역을 하는 인터프리터에 비해 번역 시간은 오래 걸리는 편입니다. 하지만, 컴파일러는 한 번 번역을 하면 실행 파일이 생성이 되어 다음에 실행을 할 때 기존에 생성되었던 실행 파일을 실행하기 때문에 인터프리터에 비해 실행 시간이 .. Hash Table ( 해시 테이블) 에 대해 알아보기 😤 해시 테이블 ? 해시 테이블이란 연관 배열 구조를 이용하여 키에 결과 값을 저장하는 자료구조 이다. 연관 배열 구조 ( Associative array ) 란 ? 키 하나와 값 한대다 1 대 1 로 연관되어 있는 자료 구조이다. 따라서 Key 값을 이용하여 값을 도출 할 수 있다. 연관 배열 구조가 지원하는 명령 키 / 값 삽입 키 / 값 확인 키 / 값 수정 키 / 값 삭제 해시 테이블의 구조 해시 테이블의 구성 요소 키 고유한 값이며 해시 함수의 input 이 된다. 다양한 길이의 값이 될 수 있다. 이 상태로 최종 저장소에 저장이 되면 다양한 길이 만큼의 저장소를 구성해 두어야 하기 때문에 해시 함수로 값을 바꾸어 저장이 되어야 공간의 효율성을 추구할 수 있다. 해시 함수 키를 해시로 바꿔주는 역할.. Java Map 헷갈리는 부분 다시 정리. 😅 오늘 스터디 할 때 Map 에 관해 나왔다. 근데 멘붕이 왔었다. 기본적인 이론은 알고 있지만 오늘 처음 알게된 내용도 있어서 정리 하려 한다. Hash Map Map 역시 List 와 마찬가지로 인터페이스다. Map 인터페이스를 수현한 Map 자료형에는 세 가지가 있다. HashMap LinkedHashMap TreeMap put Map 을 생성하고 값을 넣는다. import java.util.HashMap; public class Sample { public static void main(String[] args) { HashMap map = new HashMap(); map.put("A", "자바"); map.put("B", "파이썬"); } } get "A" 라는 키를 가진 값을 가지고 온다. 즉.. 인스턴스 / 프로세스 / 쓰레드 ??? 🙄 인스턴스 일반적으로 실행 중인 임의의 프로세스, 클래스의 현재 생성된 오브젝트를 가르킨다. 객체 ( 오브젝트 ) 의 인스턴스는 데이터베이스나 SGA, 백그라운드 프로세스 프로세스 등 광범위한 컴퓨터 시스템 자원의 접근에 할당된 물리 메모리의 일부를 가르킨다. 응용 프로그램 (application) 을 메모리에 띄운 것 예를 들어서 메모장을 바탕화면에 띄웠을 때 그것은 하나의 인터턴스인 것이다. 그런데 바탕화면에 메모장을 여러 개 띄울 수 있다. 그 때 인스턴스는 여러 개가 되는 것이다. 객체 지향 프로그래밍(OOP)에서 인스턴스(instance)는 해당 클래스의 구조로 컴퓨터 저장공간에서 할당된 실체를 의미한다. 여기서 클래스는 속성과 행위로 구성된 일종의 설계도이다. OOP에서 객체는 클래스와 인스턴스.. mkdir: cannot create directory 에러 🖤 글이 도움이 되었다면 유튜브 클릭 해주세요 🖤 https://www.youtube.com/channel/UCgkxlLdjrlsFyp2GGxzY59A 리눅스에서 폴더를 생성하려고 하는데 에러가 났다. mkdir: cannot create directory 권한이 없다는 오류이다. 폴더 생성 권한 확인 ls -al / 폴더 생성 권한 부여를 해야 하는데 솔직히 이 방법으로 해결 못했다. root 로 접속해서 폴더 생성했다. 이전 1 ··· 10 11 12 13 14 15 16 ··· 20 다음